API Stability¶
This page defines the adoption status for public OpenMeta APIs. Python bindings mirror these labels unless a Python wrapper documents a different status.
Stability levels¶
Level |
Meaning |
|---|---|
Stable |
Intended for downstream use. Breaking changes require a new contract version, a compatibility path, or a documented migration. |
Experimental |
Public and tested, but the exact shape or semantics may still evolve while the surrounding workflow is being hardened. |
Internal |
Publicly visible only because it is part of a lower-level implementation surface. Do not build new downstream integrations on it unless another doc names it as supported. |
Host-facing API map¶
API surface |
Header |
Stability |
Notes |
|---|---|---|---|
Runtime capability query: |
|
Stable |
v1 query contract for read, structured decode, transfer preparation, target edit, and raw-preservation status by format/family. |
Compatibility dumps: |
|
Stable |
Stable v1 line-oriented compatibility dump contract, including
generic BMFF component membership, role, relation-summary, policy, and
derived-image construction fields as normal |
XMP sync and writeback policy enums: |
|
Stable |
Stable bounded writer policy for generated portable XMP. See XMP Sync And Writeback Policy. |
Generic metadata traversal: |
|
Stable |
v1 traversal contract. Borrowed names are valid only during
|
|
|
Stable |
Stable naming modes for key-space-aware and portable exports. |
|
|
Stable |
Stable v1 flat host naming contract. See FlatHost Mapping Contract. |
EXIF/TIFF orientation helpers: |
|
Stable |
Small utility contract for user-facing orientation labels, clockwise rotation degrees, mirrored-state detection, dimension-swap detection, and rotation-only fallbacks. Python exposes the same helpers through thin scalar/dictionary wrappers. |
EXIF/TIFF/DNG numeric value names and version formatting:
|
|
Stable |
Small helper contract for common enum-like TIFF/EXIF/DNG numeric values
such as compression, photometric interpretation, planar configuration,
exposure program/mode, metering mode, light source, flash, color space,
white balance, scene capture type, gain control, CFA layout, and DNG
calibration illuminants, and EXIF 3.1 lens-correction /
noise-reduction status values, plus selected bounded Canon/Nikon/
Sony/Fujifilm/Pentax/Olympus/Panasonic/Phase One/Kodak/Minolta/Sigma/
Samsung/Ricoh/Apple/FLIR/JVC/GE/Reconyx/Microsoft/Motorola/Nintendo/Sanyo
MakerNote contexts including NikonSettings On/Off labels, Reconyx
scalar labels, Microsoft stitch labels, Motorola |
Photoshop IRB decode: |
|
Experimental |
Bounded resource traversal with stable raw resource preservation
behavior, but the interpreted subset can still grow. Current
interpretation includes fixed-layout resource fields,
display/grid/thumbnail/color-sampler headers, working-path and
numbered clipping-path byte counts / record summaries,
descriptor-header summaries plus safe descriptor class-name/class-ID/
item-count fields, bounded descriptor item bodies for |
Semantic metadata query: |
|
Experimental |
Query contract for inspection matches plus normalized candidates.
Current coverage includes crop/active-area/border margins,
exposure/gain, white balance, color/profile/source-color-transform,
lens correction, orientation, descriptive EXIF/IPTC/XMP fields,
container-graph evidence for BMFF content-bound metadata and
multi-image scene policy, and RAW/source-processing metadata across
standard tags, selected DNG tags,
RAW value curves, RAW linearity limits, RAW calibration curves, RAW
curve control points, EXIF color-space evidence, ICC header/tag
entries, XMP
ICC/profile/color-space fields, XMP camera RAW profile/look/tone-curve
fields, PNG profile text carriers, Fujifilm RAF raw crop/zoom
rectangles, Canon aspect/crop metadata, Canon AF micro-adjustment,
Canon ambience-selection, Canon ColorData source color-transform,
NikonSettings source-processing aliases, Nikon Capture crop bounds,
Sony panorama crop margins, selected decoded vendor/MakerNote exposure
names, fuzzy XMP paths, and vendor RAW-processing classification.
Matches report
|
Structured metadata interpretation records:
|
|
Experimental |
Thin structured projection over semantic query candidates. Records
carry query class, semantic kind, normalized shape, confidence, source
entry ids, and normalized origin/size/rect/margins/value arrays where
available. Current scope covers orientation, geometry/crop/border
including Fujifilm RAF, Canon, Nikon Capture, and Sony panorama
geometry patterns, exposure/gain,
color/white-balance/profile/source-color-transform records,
lens-correction, and RAW/source-processing records including raw value
curves, linearity limits, calibration curves, curve control points,
computational, thermal, and stitch/panorama subroles, and grouped
vendor-family table/vector records where
classification supports them. Python |
Cross-family concept resolution:
|
|
Experimental |
First bounded resolver for duplicated host-facing concepts. Current
scope reports candidates, candidate source entries, source families,
preferred entries, normalized numeric/text keys, full normalized value
vectors, transfer hints, RAW applicability states, normalized date/time
fields, date/time precision, timezone kind, normalized geometry fields,
normalized exposure values, and same-role conflicts for orientation,
date/time, exposure/gain, color/profile/source-color-transform, GPS,
geometry, lens-correction, RAW-processing, and container-graph evidence
across EXIF, XMP, IPTC, ICC, PNG text, BMFF fields, and query-backed
interpretation records where applicable. Exposure
candidates cover exposure time, aperture, ISO sensitivity, exposure
bias, exposure program/mode, gain, and raw exposure-adjustment roles
across standard EXIF/DNG/XMP evidence and selected decoded
vendor/MakerNote exposure names. Standard EXIF exposure program/mode
and gain-control values plus selected Canon/Nikon/Sony/Fujifilm/
Pentax/Olympus/Panasonic/Phase One/Kodak/Minolta/Sigma/Samsung/Ricoh
MakerNote values include human-readable labels where stable. Capture
exposure facts are safe, while raw/DNG exposure adjustments stay
rendered-unsafe. Geometry
candidates cover crop, active area, border, and sensor geometry with
canonical origin, size, rect, and margin fields when available,
including normalized DNG, Phase One/Leaf, Fujifilm RAF, Canon, Nikon
Capture, and Sony panorama geometry patterns.
Candidate transfer hints distinguish |
Transfer concept diagnostics:
|
|
Experimental |
Preflight view over concept candidates for |
Vendor RAW-processing summaries:
|
|
Experimental |
Conservative grouped source-RAW/source-processing field summaries for decoded Sony, Canon, Nikon, Fujifilm, Pentax, Panasonic, Olympus, Kodak, Minolta, Sigma, Samsung, Ricoh, Apple, DJI, Google, FLIR, Casio, Sanyo, KyoceraRaw, Reconyx, HP, JVC, GE, Motorola, Nintendo, and Microsoft MakerNotes, including vendor-private, computational, thermal, preview, face-geometry, stitch/panorama, Apple computational capture/HDR/motion, DJI pose/thermal, Google HDR+/shot-log, pixel-shift/multi-shot/ composite/auto-lighting/source-style processing, and FLIR radiometric/raw-value buckets. Long-tail aliases cover source color/style, camera-to-XYZ/RGB matrix, white-balance gain, optical/lens correction, dynamic-range, and raw-development terms. Direct field classification also recognizes decoded Phase One/Leaf RAW-processing tags; use the dedicated Phase One/Leaf helpers for normalized geometry and processing summaries. Intended for audit/UI and rendered-transfer safety decisions, not for writing vendor RAW/source-processing values into rendered targets. |
Transfer safety audit:
|
|
Experimental |
Preflight summary of source entries and entries filtered or invalidated
by |
Raw-carrier passthrough audit:
|
|
Experimental |
Diagnostic preflight for opt-in raw carriers. Reports candidate carriers and primary block reasons such as missing payload, target incompatibility, safety filtering, content-bound C2PA, explicit profile policy, missing decoded-entry links, or unsupported carrier kind. Does Hosts can call it directly before enabling snapshot passthrough. |
Source snapshot type and read helpers:
|
|
Experimental |
Current snapshots are decoded-store-backed by default. Opt-in raw carriers preserve bounded source payload/provenance records and snapshot-local decoded entry ids for host diagnostics and bounded passthrough decisions. Const reuse is safe when callers do not mutate the snapshot and do not share returned result objects across writers. |
Fileless preparation:
|
|
Experimental |
Intended for hosts that already decoded metadata and want to prepare
transfer artifacts without reopening the source file.
|
Snapshot execution:
|
|
Experimental |
Intended for deferred save/writeback from a reusable decoded source snapshot. |
Bundle execution:
|
|
Experimental |
Intended for hosts that already own a prepared bundle and destination bytes. Treat bundles as immutable except through documented patch helpers. |
Adapter-view execution:
|
|
Experimental |
Target-neutral operation view for host-owned encoders and writers. Route and dispatch details may still evolve. |
Generated transfer payload internals, route strings, low-level package chunks, and diagnostic counters not documented by a stable API page |
|
Internal |
These fields may be useful for tests and diagnostics, but they are not a compatibility contract for downstream integrations. |
Practical guidance¶
Use stable APIs for normal application integrations. Use experimental APIs when they match a real workflow and the integration can track OpenMeta releases. Avoid internal surfaces unless you are contributing to OpenMeta itself or writing a test that is intentionally tied to implementation details.