This repository was archived by the owner on Mar 9, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontract.bundle.json
More file actions
1 lines (1 loc) · 8.52 KB
/
contract.bundle.json
File metadata and controls
1 lines (1 loc) · 8.52 KB
1
{"apiError.schema.json":{"$id":"https://majesticcore.dev/schemas/apiError.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":true,"description":"Structured error responses from API endpoints","properties":{"adaptiveAvailable":{"type":"boolean"},"editionAudio":{"type":"string"},"error":{"description":"Machine-readable error code","type":"string"},"hint":{"type":"string"},"match_reason":{"type":"string"},"message":{"description":"Human-readable error message","type":"string"},"policy":{"type":"string"},"required":{"type":"string"},"videoTranscodeAvailable":{"type":"boolean"}},"required":["error"],"title":"ApiError","type":"object"},"audioTrackInfo.schema.json":{"$id":"https://majesticcore.dev/schemas/audioTrackInfo.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"Audio track for in-player switching.","properties":{"channels":{"type":"integer"},"codec":{"type":"string"},"index":{"type":"integer"},"language":{"type":["string","null"]},"title":{"type":["string","null"]}},"required":["index","codec","channels"],"title":"AudioTrackInfo","type":"object"},"incompatibility.schema.json":{"$id":"https://majesticcore.dev/schemas/incompatibility.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"Structured incompatibility payload when media cannot be direct-played","properties":{"code":{"description":"Machine-readable error code","type":"string"},"detail":{"description":"Human-readable description","type":"string"},"hint":{"description":"Optional actionable guidance for the user","type":"string"},"type":{"description":"Discriminant for incompatibility category","enum":["audio","video","container","subtitle","unknown"],"type":"string"}},"required":["type","code","detail"],"title":"Incompatibility","type":"object"},"libraryEdition.schema.json":{"$id":"https://majesticcore.dev/schemas/libraryEdition.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"Single edition within a library movie item.","properties":{"audio_channels":{"type":["integer","null"]},"audio_display_label":{"type":["string","null"]},"audio_tracks":{"items":{"$ref":"audioTrackInfo.schema.json"},"type":"array"},"capabilities":{"additionalProperties":true,"description":"Probe/capability metadata. Flexible shape.","type":"object"},"compatibility":{"additionalProperties":false,"properties":{"incompatibility":{"$ref":"incompatibility.schema.json"},"playable":{"description":"Can direct-play without conversion. When false, reason explains why. Distinct from is_playable.","type":"boolean"},"reason":{"type":["string","null"]}},"required":["playable"],"type":"object"},"display_label":{"type":"string"},"duration_seconds":{"type":"integer"},"has_adaptive_fallback":{"description":"True when playback_prediction is strict_incompatible: cannot direct-play but can play via adaptive audio. Use for Create Compatible Audio button.","type":"boolean"},"hdr_display_label":{"type":["string","null"]},"hdr_format":{"type":["string","null"]},"integrity_flagged":{"type":"boolean"},"is_playable":{"description":"Authoritative for playability. True when user can press play and it will work (direct/remux/adaptive/transcode). Use for UI.","type":"boolean"},"label":{"type":"string"},"media_file_id":{"type":"integer"},"needs_adaptive_audio":{"type":"boolean"},"physical_copy":{"oneOf":[{"$ref":"physicalCopyInfo.schema.json"},{"type":"null"}]},"playback_prediction":{"$ref":"playbackPrediction.schema.json"},"playback_status_code":{"$ref":"playbackStatusCode.schema.json"},"playback_status_primary_text":{"type":"string"},"playback_status_secondary_text":{"type":["string","null"]},"resolution":{"type":["string","null"]},"resolution_label":{"type":["string","null"]},"resume_position_seconds":{"type":"integer"},"runtime_text":{"type":["string","null"]},"stream_url":{"type":"string"},"subtitle_url":{"type":["string","null"]},"watched":{"type":"boolean"}},"required":["media_file_id","label","stream_url","integrity_flagged","capabilities","compatibility","playback_prediction","is_playable","needs_adaptive_audio","has_adaptive_fallback","playback_status_code","playback_status_primary_text","display_label"],"title":"LibraryEdition","type":"object"},"libraryMovieItem.schema.json":{"$id":"https://majesticcore.dev/schemas/libraryMovieItem.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"Movie item in library response with editions array.","properties":{"backdrop_url":{"type":["string","null"]},"badge":{"enum":["integrity_flagged","missing","analysis_failed","not_supported","not_analyzed","playable","on_disc"],"type":"string"},"cast_names":{"description":"Actor names for search. Populated from person_movie credits.","items":{"type":"string"},"type":"array"},"default_edition_index":{"type":"integer"},"director_names":{"description":"Director names for search. Populated from person_movie crew.","items":{"type":"string"},"type":"array"},"editions":{"items":{"$ref":"libraryEdition.schema.json"},"type":"array"},"has_digital_apple_tv":{"type":"boolean"},"has_digital_fandango":{"type":"boolean"},"movie_id":{"type":["integer","null"]},"overview":{"type":["string","null"]},"physical_copies":{"items":{"$ref":"physicalCopyInfo.schema.json"},"type":"array"},"poster_url":{"type":["string","null"]},"title":{"type":"string"},"year":{"type":["integer","null"]}},"required":["movie_id","title","editions","default_edition_index","badge"],"title":"LibraryMovieItem","type":"object"},"libraryResponse.schema.json":{"$id":"https://majesticcore.dev/schemas/libraryResponse.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"GET /library response shape.","properties":{"contract_version":{"description":"Wire contract version returned by server.","type":"string"},"device":{"type":"string"},"health_summary":{"description":"Pre-formatted summary e.g. '125 playable · 3 need review · 12 not playable'","type":["string","null"]},"items":{"items":{"$ref":"libraryMovieItem.schema.json"},"type":"array"},"system_warning":{"type":["string","null"]}},"required":["items","contract_version"],"title":"LibraryResponse","type":"object","x-endpoints":["GET /library"]},"physicalCopyInfo.schema.json":{"$id":"https://majesticcore.dev/schemas/physicalCopyInfo.schema.json","$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"description":"Physical copy binder/slot info when edition has a disc.","properties":{"binder":{"type":"string"},"format":{"type":["string","null"]},"slot":{"type":"string"}},"required":["binder","slot"],"title":"PhysicalCopyInfo","type":"object"},"playbackPrediction.schema.json":{"$id":"https://majesticcore.dev/schemas/playbackPrediction.schema.json","$schema":"http://json-schema.org/draft-07/schema#","description":"Predictive badge for edition: what will happen when user presses play.","enum":["direct","remux","adaptive","transcode","strict_incompatible"],"title":"PlaybackPrediction","type":"string"},"playbackStatusCode.schema.json":{"$id":"https://majesticcore.dev/schemas/playbackStatusCode.schema.json","$schema":"http://json-schema.org/draft-07/schema#","description":"Stable enum for edition playback status. Unknown values → treat as unknown.","enum":["direct_play","direct_play_remux","adaptive","transcode","incompatible","unknown"],"title":"PlaybackStatusCode","type":"string"},"prewarm.schema.json":{"$id":"https://majesticcore.dev/schemas/prewarm.schema.json","$schema":"http://json-schema.org/draft-07/schema#","description":"Prewarm endpoint GET and DELETE response shapes","oneOf":[{"additionalProperties":false,"properties":{"status":{"const":"ready"}},"required":["status"],"type":"object"},{"additionalProperties":false,"properties":{"reason":{"type":"string"},"status":{"const":"not_needed"}},"required":["status","reason"],"type":"object"},{"additionalProperties":false,"properties":{"reason":{"type":"string"},"status":{"const":"not_ready"}},"required":["status","reason"],"type":"object"},{"additionalProperties":false,"properties":{"message":{"type":"string"},"status":{"const":"building"}},"required":["status","message"],"type":"object"},{"additionalProperties":false,"properties":{"status":{"const":"cancelled"}},"required":["status"],"type":"object"},{"additionalProperties":false,"properties":{"message":{"type":"string"},"status":{"const":"not_building"}},"required":["status","message"],"type":"object"}],"title":"PrewarmResponse","x-endpoints":["GET /api/media-file/:id/prewarm-appletv","DELETE /api/media-file/:id/prewarm-appletv"]}}