Skip to main content

AEROSIM-TS-86

Project task

Define and validate aircraft handling archetype configurations

Each supported aircraft has one validated configuration for stability, responsiveness, speed, and control authority.

AEROSIM-TS-86Canonical ID TASK-0086
Verified flow state
Done
Owner
AeroSim Architecture and Delivery
Component
@corp-v1-aerosim/flight-core — aircraft handling catalogue
Repository
corp-v1-aerosim/corp-v1-aerosim

Delivery scope

Define AircraftHandlingConfigV1 and validate a versioned catalogue containing trainer and sport archetypes. Fields are massKg, inertiaTensorKgM2, wingAreaM2, liftSlope, zeroLiftDrag, inducedDragFactor, maxThrustN, pitch/roll/yawAuthorityNm, staticStability, angularDamping, maxOperationalSpeedMps, and controlResponseSeconds. Load by aircraftConfigId and return an immutable record with a SHA-256 content digest.

Implementation contract

Implementation artifacts

  • packages/flight-core/src/config/aircraft-handling-config.ts
  • packages/flight-core/src/config/aircraft-catalogue.ts
  • packages/flight-core/test/config/aircraft-catalogue.spec.ts
  • packages/flight-core/config/aircraft/trainer.v1.json
  • packages/flight-core/config/aircraft/sport.v1.json

Inputs

  • AircraftHandlingConfigV1 JSON with schemaVersion='1', unique aircraftConfigId, all named aerodynamic/mass/control fields, and values within schema-declared inclusive bounds.

Outputs

  • AircraftConfigSnapshot {aircraftConfigId,schemaVersion:'1',contentDigest,config}; config is deeply frozen and its digest is computed from canonical key ordering.

Failure boundaries

  • Reject with AIRCRAFT_CONFIG_SCHEMA_UNSUPPORTED when schemaVersion is not '1'.
  • Reject with AIRCRAFT_CONFIG_INVALID and JSON-pointer error paths for missing, non-finite, non-positive, or out-of-bound fields.
  • Reject catalogue startup with AIRCRAFT_CONFIG_ID_DUPLICATE when two files declare the same aircraftConfigId.
  • Reject with AIRCRAFT_CONFIG_DIGEST_MISMATCH when loaded bytes do not match the digest bound into a FlightSessionConfig.

Excluded scope

  • A user-editable tuning UI, runtime config mutation, real-aircraft certification data, damage variants, payload/fuel mass changes, and additional archetypes beyond trainer and sport are excluded.

Verification steps

  • Run packages/flight-core/test/config/aircraft-catalogue.spec.ts.
  • Validate trainer.v1.json and sport.v1.json, assert unique IDs, stable content digests, frozen output, and every required field.
  • Mutate each bounded field below and above its limit, remove required keys, duplicate an ID, change schemaVersion, and alter bytes after digest capture; assert exact error code and path.
  • Assert trainer and sport differ in at least staticStability, controlResponseSeconds, maxOperationalSpeedMps, and one control-authority field.

Traceability

Requirements

Dependencies

UI/UX applicability

non_visual

This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.

Acceptance evidence

Verified delivery: application PR #28 reviewed head 685313b23543f77c301a364889a02f5a61b91a86, exact-head validation task 1842 succeeded, merged as e6212bf637045138da191634fe113285156426b3; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.

Current evidence boundary

No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.