syntax = "proto2";

package commonroad;

import "util.proto";
import "scenario_tags.proto";
import "location.proto";
import "lanelet.proto";
import "traffic_sign.proto";
import "traffic_light.proto";
import "intersection.proto";
import "static_obstacle.proto";
import "dynamic_obstacle.proto";
import "environment_obstacle.proto";
import "phantom_obstacle.proto";
import "planning_problem.proto";

message ScenarioInformation {
    required string common_road_version = 1;
    required string benchmark_id = 2;
    required TimeStamp date = 3;
    required string author = 4;
    required string affiliation = 5;
    required string source = 6;
    required double time_step_size = 7;
}

message CommonRoad {
    required ScenarioInformation information = 1;
    required ScenarioTags scenario_tags = 2;
    required Location location = 3;
    repeated Lanelet lanelets = 4;
    repeated TrafficSign traffic_signs = 5;
    repeated TrafficLight traffic_lights = 6;
    repeated Intersection intersections = 7;
    repeated StaticObstacle static_obstacles = 8;
    repeated DynamicObstacle dynamic_obstacles = 9;
    repeated EnvironmentObstacle environment_obstacles = 10;
    repeated PhantomObstacle phantom_obstacles = 11;
    repeated PlanningProblem planning_problems = 12;
}