Skip to content

schema: add MCM JSON schema v2.0.0#511

Merged
mathieu1fb merged 11 commits into
Orange-OpenSource:masterfrom
raphael-ram:add-mcm-schema
May 28, 2026
Merged

schema: add MCM JSON schema v2.0.0#511
mathieu1fb merged 11 commits into
Orange-OpenSource:masterfrom
raphael-ram:add-mcm-schema

Conversation

@raphael-ram
Copy link
Copy Markdown
Contributor

@raphael-ram raphael-ram commented Apr 22, 2026

Summary

Add the MCM (Manoeuvre Coordination Message) JSON Schema v2.0.0, based on ETSI TS 103 561 v1.1.

Close #512

Changes

  • Add schema/mcm/mcm_schema_2-0-0.json

  • trajectory is an array (SEQUENCE (SIZE(1..10)) OF WayPoint), items reference $ref: #/$defs/way_point

  • way_point is a SEQUENCE with way_point_type, longitude, latitude, speed (required), altitude, heading (optional)

  • longitude and latitude in way_point reference $ref: #/$defs/longitude_value and $ref: #/$defs/latitude_value

  • altitude in way_point references $ref: #/$defs/altitude_value (integer, ETSI WGS84 bounds)

  • altitude in reference_position references $ref: #/$defs/altitude (object with altitude_value + altitude_confidence, based on ETSI-ITS-CDD Altitude)

  • latitude_value, longitude_value, altitude_value are standalone integer $defs with ETSI WGS84 bounds (renamed from latitude_position, longitude_position, altitude_position per reviewer comments)

  • reference_position uses $ref for latitude, longitude, altitude and position_confidence_ellipse

  • kinematics_characteristics is an empty object { "type": "object", "properties": {}, "additionalProperties": false }, referenced via $ref in both advised_trr_container and sub-manoeuvres container

@raphael-ram raphael-ram marked this pull request as draft April 22, 2026 11:28
@raphael-ram raphael-ram marked this pull request as ready for review April 22, 2026 11:28
@raphael-ram raphael-ram marked this pull request as draft April 22, 2026 11:28
@raphael-ram raphael-ram marked this pull request as ready for review April 22, 2026 11:37
@mathieu1fb mathieu1fb added the Schema JSON schema files label Apr 22, 2026
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
@mathieu1fb
Copy link
Copy Markdown
Collaborator

I think that the overall structure of the schema if good. Some arrays should point to the objects that they contain, and some extra definitions have to be found for the "null" objects.

For instance, ASN.1 definitions of the MCM don't seem to be complete:

Trajectory::= SEQUENCE {
    wayPointType WayPointType,
    wayPoints SEQUENCE (SIZE (1..10)) OF WayPoint, -- Including starting way point and ending way point
    longitudePositions SEQUENCE (SIZE (1..10)) OF LongitudePosition,
    latitudePositions SEQUENCE (SIZE (1..10)) OF LatitudePosition,
    altitudePositions SEQUENCE (SIZE (1..10)) OF AltitudePosition OPTIONAL,
    headings SEQUENCE (SIZE (1..11)) OF Wgs84Angle OPTIONAL,
    speed INTEGER (0..511) -- in meters per second
}
 
WayPointType ::= ENUMERATED {
    startingWayPoint (0),
    intermediateWayPoint (1),
    endingWayPoint (2)
}
 
LongitudePosition ::= NULL
 
LatitudePosition ::= NULL
 
AltitudePosition ::= NULL
 
WayPoint ::= NULL

@nbuffon @ymorin-orange @tigroo31 any ideas?

@mathieu1fb
Copy link
Copy Markdown
Collaborator

I think that the overall structure of the schema if good. Some arrays should point to the objects that they contain, and some extra definitions have to be found for the "null" objects.

For instance, ASN.1 definitions of the MCM don't seem to be complete:

Trajectory::= SEQUENCE {
    wayPointType WayPointType,
    wayPoints SEQUENCE (SIZE (1..10)) OF WayPoint, -- Including starting way point and ending way point
    longitudePositions SEQUENCE (SIZE (1..10)) OF LongitudePosition,
    latitudePositions SEQUENCE (SIZE (1..10)) OF LatitudePosition,
    altitudePositions SEQUENCE (SIZE (1..10)) OF AltitudePosition OPTIONAL,
    headings SEQUENCE (SIZE (1..11)) OF Wgs84Angle OPTIONAL,
    speed INTEGER (0..511) -- in meters per second
}
 
WayPointType ::= ENUMERATED {
    startingWayPoint (0),
    intermediateWayPoint (1),
    endingWayPoint (2)
}
 
LongitudePosition ::= NULL
 
LatitudePosition ::= NULL
 
AltitudePosition ::= NULL
 
WayPoint ::= NULL

@nbuffon @ymorin-orange @tigroo31 any ideas?

Resolved in #512

@mathieu1fb mathieu1fb added this to the Sprint 20 milestone Apr 23, 2026
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
@mathieu1fb
Copy link
Copy Markdown
Collaborator

Looks all good to me now, thanks @raphael-ram. Let's now wait for a review of @nbuffon, @tigroo31 or @ymorin-orange before merging.

@raphael-ram
Copy link
Copy Markdown
Contributor Author

raphael-ram commented Apr 24, 2026

Ok. I've just made another commit to formalize the required fields of way_point because this doesn't respect the initial format of other's required fields.

Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Copy link
Copy Markdown
Member

@ymorin-orange ymorin-orange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question to adress with @nbuffon (for the same question in the CAM): should the message_format be part of the required list?

Comment thread schema/mcm/mcm_schema_2-0-0.json
Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…tics to $defs

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…or WayPoint and Trajectory

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…nematics_characteristics

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…itude_value to altitude in way_point

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…ude_position/longitude_position naming

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
…sition to *_value per reviewer comments

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
Comment thread schema/mcm/mcm_schema_2-0-0.json
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Copy link
Copy Markdown
Member

@nbuffon nbuffon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments from Frédéric review

Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
Comment thread schema/mcm/mcm_schema_2-0-0.json Outdated
- Add description to advised_trr_container (TRR = Target Road Resource)
- Extend trr_type description with explanation of each type (1/2/3)
- Rename t_rr_occupancy_* to trr_occupancy_* (fix tRR→trr naming in ASN.1)
- Clarify kinematics_characteristics $comment (intentionally empty, NULL in ASN.1)

Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
Signed-off-by: Raphael Ramanantsoa <raphael.ramanantsoa@orange.com>
@mathieu1fb mathieu1fb dismissed a stale review May 28, 2026 08:19

Review was re-done by @nbuffon as there is an issue with @tigroo's GitHub account.

Copy link
Copy Markdown
Collaborator

@mathieu1fb mathieu1fb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @raphael-ram for all the work, we can now approve this first version of the MCM JSON schema!

@mathieu1fb mathieu1fb merged commit 44dcde8 into Orange-OpenSource:master May 28, 2026
117 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Schema JSON schema files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create MCM schema

4 participants