@metreeca/keep
    Preparing search index...
    • Media union for Product.media: a captive Image or Video reference.

      Both variants share the reference storage class but carry disjoint IRI patterns, so a stored reference singles out its branch by target-identifier pattern (§3.3). The declaring Product media property marks them captive, so they are cascade-deleted with the owning product.

      Returns UnionShape<
          [
              ReferenceShape<
                  () => ResourceShape<
                      [
                          () => ResourceShape<
                              [() => ResourceShape<(...), (...)>],
                              {
                                  id: Id;
                                  type: Type;
                                  created: NoInfer<(...)> & PropertyConstraints<(...)> & {
                                      kind: ...;
                                      range: ...;
                                  };
                                  updated: NoInfer<(...)> & PropertyConstraints<(...)> & {
                                      kind: ...;
                                      range: ...;
                                  };
                              },
                          >,
                      ],
                      {
                          label: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  DictionaryConstraints & { kind: ... } & { uniqueLang: ... },
                                  1,
                                  1,
                              >;
                          };
                          url: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  <const C extends StringValueConstraints<(...)> = {}>(
                                      constraints?: (...) | (...),
                                  ) => StringShape<(...)>,
                                  1,
                                  1,
                              >;
                          };
                          width: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  <const C extends NumberRangeConstraints<(...)> = {}>(
                                      constraints?: (...) | (...),
                                  ) => NumberShape<(...)>,
                                  1,
                                  1,
                              >;
                          };
                          height: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  <const C extends NumberRangeConstraints<(...)> = {}>(
                                      constraints?: (...) | (...),
                                  ) => NumberShape<(...)>,
                                  1,
                                  1,
                              >;
                          };
                          caption: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<StringShape<string>, undefined, 1>;
                          };
                          subject: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<ReferenceShape<() => ...>, undefined, 1>;
                          };
                      },
                  >,
              >,
              ReferenceShape<
                  () => ResourceShape<
                      [
                          () => ResourceShape<
                              [() => ResourceShape<(...), (...)>],
                              {
                                  id: Id;
                                  type: Type;
                                  created: NoInfer<(...)> & PropertyConstraints<(...)> & {
                                      kind: ...;
                                      range: ...;
                                  };
                                  updated: NoInfer<(...)> & PropertyConstraints<(...)> & {
                                      kind: ...;
                                      range: ...;
                                  };
                              },
                          >,
                      ],
                      {
                          label: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  DictionaryConstraints & { kind: ... } & { uniqueLang: ... },
                                  1,
                                  1,
                              >;
                          };
                          url: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  <const C extends StringValueConstraints<(...)> = {}>(
                                      constraints?: (...) | (...),
                                  ) => StringShape<(...)>,
                                  1,
                                  1,
                              >;
                          };
                          duration: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  <const C extends StringValueConstraints<(...)> = {}>(
                                      constraints?: (...) | (...),
                                  ) => StringShape<(...)>,
                                  1,
                                  1,
                              >;
                          };
                          caption: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<
                                  DictionaryConstraints & { kind: ... } & { uniqueLang: ... },
                                  undefined,
                                  1,
                              >;
                          };
                          subject: PropertyConstraints<string> & {
                              kind: "property";
                              range: Range<ReferenceShape<() => ...>, undefined, 1>;
                          };
                      },
                  >,
              >,
          ],
      >