@giveitsmaller/contracts 0.73.0 → 0.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +2 -2
  2. package/accepted-options/accepted-options.json +1 -1
  3. package/accepted-options/image-output-routes.json +1 -1
  4. package/asyncapi/events.yaml +200 -62
  5. package/availability/availability.json +71 -39
  6. package/code-builder/code-builder-metadata.json +134 -39
  7. package/dist/asyncapi/ErrorCode.d.ts +1 -0
  8. package/dist/asyncapi/ErrorCode.js +1 -0
  9. package/dist/asyncapi/Failure.d.ts +2 -0
  10. package/dist/asyncapi/LongFormJobMessage.d.ts +1 -0
  11. package/dist/asyncapi/MultiOutputCompletion.d.ts +2 -0
  12. package/dist/asyncapi/OperationMetrics.d.ts +2 -0
  13. package/dist/asyncapi/SingleOutputCompletion.d.ts +2 -0
  14. package/dist/openapi/models/AccountLimitEntry.d.ts +2 -2
  15. package/dist/openapi/models/AccountLimitEntry.js +2 -2
  16. package/dist/openapi/models/AccountLimits.d.ts +2 -2
  17. package/dist/openapi/models/AccountLimits.js +2 -2
  18. package/dist/openapi/models/AccountLimitsLimits.d.ts +14 -2
  19. package/dist/openapi/models/AccountLimitsLimits.js +6 -2
  20. package/dist/openapi/models/AccountLimitsSuccessEnvelope.d.ts +2 -2
  21. package/dist/openapi/models/AccountLimitsSuccessEnvelope.js +2 -2
  22. package/dist/openapi/models/AudioWatermarkDecodeRequest.d.ts +2 -2
  23. package/dist/openapi/models/AudioWatermarkDecodeRequest.js +2 -2
  24. package/dist/openapi/models/AudioWatermarkDecodeResponse.d.ts +2 -2
  25. package/dist/openapi/models/AudioWatermarkDecodeResponse.js +2 -2
  26. package/dist/openapi/models/AuthErrorResponse.d.ts +14 -5
  27. package/dist/openapi/models/AuthErrorResponse.js +2 -2
  28. package/dist/openapi/models/AuthErrorType.d.ts +2 -2
  29. package/dist/openapi/models/AuthErrorType.js +2 -2
  30. package/dist/openapi/models/AuthRejectionEnvelope.d.ts +2 -2
  31. package/dist/openapi/models/AuthRejectionEnvelope.js +2 -2
  32. package/dist/openapi/models/AuthenticatedIdentity.d.ts +2 -2
  33. package/dist/openapi/models/AuthenticatedIdentity.js +2 -2
  34. package/dist/openapi/models/AvailabilityValue.d.ts +2 -2
  35. package/dist/openapi/models/AvailabilityValue.js +2 -2
  36. package/dist/openapi/models/BalanceExhaustedResponse.d.ts +14 -5
  37. package/dist/openapi/models/BalanceExhaustedResponse.js +2 -2
  38. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.d.ts +2 -2
  39. package/dist/openapi/models/BalanceExhaustedResponseAllOfLinks.js +2 -2
  40. package/dist/openapi/models/BillingCheckoutRequest.d.ts +2 -2
  41. package/dist/openapi/models/BillingCheckoutRequest.js +2 -2
  42. package/dist/openapi/models/BillingCheckoutSession.d.ts +2 -2
  43. package/dist/openapi/models/BillingCheckoutSession.js +2 -2
  44. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.d.ts +2 -2
  45. package/dist/openapi/models/BillingCheckoutSuccessEnvelope.js +2 -2
  46. package/dist/openapi/models/CallbackEventType.d.ts +2 -2
  47. package/dist/openapi/models/CallbackEventType.js +2 -2
  48. package/dist/openapi/models/CancelAccountDeletion200Response.d.ts +2 -2
  49. package/dist/openapi/models/CancelAccountDeletion200Response.js +2 -2
  50. package/dist/openapi/models/CancelAccountDeletion200ResponseData.d.ts +2 -2
  51. package/dist/openapi/models/CancelAccountDeletion200ResponseData.js +2 -2
  52. package/dist/openapi/models/CapabilityCondition.d.ts +2 -2
  53. package/dist/openapi/models/CapabilityCondition.js +2 -2
  54. package/dist/openapi/models/CapabilityConditionOneOf.d.ts +2 -2
  55. package/dist/openapi/models/CapabilityConditionOneOf.js +2 -2
  56. package/dist/openapi/models/CapabilityConditionOneOf1.d.ts +2 -2
  57. package/dist/openapi/models/CapabilityConditionOneOf1.js +2 -2
  58. package/dist/openapi/models/CapabilityConditionOneOf2.d.ts +2 -2
  59. package/dist/openapi/models/CapabilityConditionOneOf2.js +2 -2
  60. package/dist/openapi/models/CapabilityConditionOneOf3.d.ts +2 -2
  61. package/dist/openapi/models/CapabilityConditionOneOf3.js +2 -2
  62. package/dist/openapi/models/CapabilityConditionOneOf4.d.ts +2 -2
  63. package/dist/openapi/models/CapabilityConditionOneOf4.js +2 -2
  64. package/dist/openapi/models/CapabilityConditionOneOf5.d.ts +2 -2
  65. package/dist/openapi/models/CapabilityConditionOneOf5.js +2 -2
  66. package/dist/openapi/models/CapabilityConditionOneOf6.d.ts +2 -2
  67. package/dist/openapi/models/CapabilityConditionOneOf6.js +2 -2
  68. package/dist/openapi/models/CapabilityConstraint.d.ts +2 -2
  69. package/dist/openapi/models/CapabilityConstraint.js +2 -2
  70. package/dist/openapi/models/CapabilityInputSpec.d.ts +2 -2
  71. package/dist/openapi/models/CapabilityInputSpec.js +2 -2
  72. package/dist/openapi/models/CapabilityProduces.d.ts +2 -2
  73. package/dist/openapi/models/CapabilityProduces.js +2 -2
  74. package/dist/openapi/models/CapabilityProducesOneOf.d.ts +2 -2
  75. package/dist/openapi/models/CapabilityProducesOneOf.js +2 -2
  76. package/dist/openapi/models/CapabilityProducesOneOf1.d.ts +2 -2
  77. package/dist/openapi/models/CapabilityProducesOneOf1.js +2 -2
  78. package/dist/openapi/models/CapabilityProducesOneOf2.d.ts +2 -2
  79. package/dist/openapi/models/CapabilityProducesOneOf2.js +2 -2
  80. package/dist/openapi/models/ChangePasswordRequest.d.ts +2 -2
  81. package/dist/openapi/models/ChangePasswordRequest.js +2 -2
  82. package/dist/openapi/models/CheckoutSessionStatusResponse.d.ts +46 -0
  83. package/dist/openapi/models/CheckoutSessionStatusResponse.js +54 -0
  84. package/dist/openapi/models/CheckoutSessionStatusResponseData.d.ts +50 -0
  85. package/dist/openapi/models/CheckoutSessionStatusResponseData.js +55 -0
  86. package/dist/openapi/models/CodegenSource.d.ts +5 -4
  87. package/dist/openapi/models/CodegenSource.js +2 -2
  88. package/dist/openapi/models/CodegenSourceInput.d.ts +2 -2
  89. package/dist/openapi/models/CodegenSourceInput.js +2 -2
  90. package/dist/openapi/models/CodegenSourceJob.d.ts +2 -2
  91. package/dist/openapi/models/CodegenSourceJob.js +2 -2
  92. package/dist/openapi/models/CodegenSourceJobSource.d.ts +2 -2
  93. package/dist/openapi/models/CodegenSourceJobSource.js +2 -2
  94. package/dist/openapi/models/CodegenSourceOperation.d.ts +2 -2
  95. package/dist/openapi/models/CodegenSourceOperation.js +2 -2
  96. package/dist/openapi/models/CodegenUploadPlaceholder.d.ts +2 -2
  97. package/dist/openapi/models/CodegenUploadPlaceholder.js +2 -2
  98. package/dist/openapi/models/CompositionPlan.d.ts +2 -2
  99. package/dist/openapi/models/CompositionPlan.js +2 -2
  100. package/dist/openapi/models/CompositionPlanJob.d.ts +2 -2
  101. package/dist/openapi/models/CompositionPlanJob.js +2 -2
  102. package/dist/openapi/models/CompositionPlanOperation.d.ts +2 -2
  103. package/dist/openapi/models/CompositionPlanOperation.js +2 -2
  104. package/dist/openapi/models/ConfirmEmailChange200Response.d.ts +2 -2
  105. package/dist/openapi/models/ConfirmEmailChange200Response.js +2 -2
  106. package/dist/openapi/models/ConfirmEmailChange200ResponseData.d.ts +2 -2
  107. package/dist/openapi/models/ConfirmEmailChange200ResponseData.js +2 -2
  108. package/dist/openapi/models/ConfirmEmailChangeRequest.d.ts +2 -2
  109. package/dist/openapi/models/ConfirmEmailChangeRequest.js +2 -2
  110. package/dist/openapi/models/ConnectionSource.d.ts +2 -2
  111. package/dist/openapi/models/ConnectionSource.js +2 -2
  112. package/dist/openapi/models/ContactRequest.d.ts +2 -2
  113. package/dist/openapi/models/ContactRequest.js +2 -2
  114. package/dist/openapi/models/ContactSubject.d.ts +2 -2
  115. package/dist/openapi/models/ContactSubject.js +2 -2
  116. package/dist/openapi/models/ContactValidationErrorResponse.d.ts +2 -2
  117. package/dist/openapi/models/ContactValidationErrorResponse.js +2 -2
  118. package/dist/openapi/models/CreateApiKey201Response.d.ts +2 -2
  119. package/dist/openapi/models/CreateApiKey201Response.js +2 -2
  120. package/dist/openapi/models/CreateApiKey201ResponseData.d.ts +2 -2
  121. package/dist/openapi/models/CreateApiKey201ResponseData.js +2 -2
  122. package/dist/openapi/models/CreateApiKeyRequest.d.ts +2 -2
  123. package/dist/openapi/models/CreateApiKeyRequest.js +2 -2
  124. package/dist/openapi/models/CreateBillingCheckoutSession422Response.d.ts +2 -2
  125. package/dist/openapi/models/CreateBillingCheckoutSession422Response.js +2 -2
  126. package/dist/openapi/models/CreateExternalImport403Response.d.ts +2 -2
  127. package/dist/openapi/models/CreateExternalImport403Response.js +2 -2
  128. package/dist/openapi/models/CreateExternalImport422Response.d.ts +2 -2
  129. package/dist/openapi/models/CreateExternalImport422Response.js +2 -2
  130. package/dist/openapi/models/CreateWorkflow401Response.d.ts +14 -5
  131. package/dist/openapi/models/CreateWorkflow401Response.js +2 -2
  132. package/dist/openapi/models/CreateWorkflow422Response.d.ts +2 -2
  133. package/dist/openapi/models/CreateWorkflow422Response.js +2 -2
  134. package/dist/openapi/models/CreditTransaction.d.ts +22 -12
  135. package/dist/openapi/models/CreditTransaction.js +2 -2
  136. package/dist/openapi/models/CreditTransactionSourceBucket.d.ts +2 -2
  137. package/dist/openapi/models/CreditTransactionSourceBucket.js +2 -2
  138. package/dist/openapi/models/CreditsBalanceResponse.d.ts +2 -2
  139. package/dist/openapi/models/CreditsBalanceResponse.js +2 -2
  140. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.d.ts +2 -2
  141. package/dist/openapi/models/CreditsBalanceSuccessEnvelope.js +2 -2
  142. package/dist/openapi/models/CreditsUsageResponse.d.ts +2 -2
  143. package/dist/openapi/models/CreditsUsageResponse.js +2 -2
  144. package/dist/openapi/models/CreditsUsageSuccessEnvelope.d.ts +2 -2
  145. package/dist/openapi/models/CreditsUsageSuccessEnvelope.js +2 -2
  146. package/dist/openapi/models/Delivery.d.ts +2 -2
  147. package/dist/openapi/models/Delivery.js +2 -2
  148. package/dist/openapi/models/DeliveryOutputRef.d.ts +2 -2
  149. package/dist/openapi/models/DeliveryOutputRef.js +2 -2
  150. package/dist/openapi/models/DeliveryPlan.d.ts +2 -2
  151. package/dist/openapi/models/DeliveryPlan.js +2 -2
  152. package/dist/openapi/models/DeliveryPlanOutput.d.ts +2 -2
  153. package/dist/openapi/models/DeliveryPlanOutput.js +2 -2
  154. package/dist/openapi/models/DeliveryPlanReason.d.ts +2 -2
  155. package/dist/openapi/models/DeliveryPlanReason.js +2 -2
  156. package/dist/openapi/models/DeliverySelection.d.ts +2 -2
  157. package/dist/openapi/models/DeliverySelection.js +2 -2
  158. package/dist/openapi/models/DownloadBundle.d.ts +2 -2
  159. package/dist/openapi/models/DownloadBundle.js +2 -2
  160. package/dist/openapi/models/DroppedOption.d.ts +2 -2
  161. package/dist/openapi/models/DroppedOption.js +2 -2
  162. package/dist/openapi/models/EmailNotify.d.ts +2 -2
  163. package/dist/openapi/models/EmailNotify.js +2 -2
  164. package/dist/openapi/models/EmptySuccessEnvelope.d.ts +2 -2
  165. package/dist/openapi/models/EmptySuccessEnvelope.js +2 -2
  166. package/dist/openapi/models/EndpointProjection.d.ts +2 -2
  167. package/dist/openapi/models/EndpointProjection.js +2 -2
  168. package/dist/openapi/models/EndpointProjectionServersInner.d.ts +2 -2
  169. package/dist/openapi/models/EndpointProjectionServersInner.js +2 -2
  170. package/dist/openapi/models/ErrorEnvelope.d.ts +14 -5
  171. package/dist/openapi/models/ErrorEnvelope.js +2 -2
  172. package/dist/openapi/models/EstimateQuality.d.ts +2 -2
  173. package/dist/openapi/models/EstimateQuality.js +2 -2
  174. package/dist/openapi/models/EstimateRange.d.ts +2 -2
  175. package/dist/openapi/models/EstimateRange.js +2 -2
  176. package/dist/openapi/models/ExportAccountData200Response.d.ts +2 -2
  177. package/dist/openapi/models/ExportAccountData200Response.js +2 -2
  178. package/dist/openapi/models/ExportAccountData200ResponseData.d.ts +2 -2
  179. package/dist/openapi/models/ExportAccountData200ResponseData.js +2 -2
  180. package/dist/openapi/models/ExternalDestination.d.ts +2 -2
  181. package/dist/openapi/models/ExternalDestination.js +2 -2
  182. package/dist/openapi/models/ExternalImportCreatedResponse.d.ts +2 -2
  183. package/dist/openapi/models/ExternalImportCreatedResponse.js +2 -2
  184. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.d.ts +2 -2
  185. package/dist/openapi/models/ExternalImportCreatedSuccessEnvelope.js +2 -2
  186. package/dist/openapi/models/ExternalImportRequest.d.ts +2 -2
  187. package/dist/openapi/models/ExternalImportRequest.js +2 -2
  188. package/dist/openapi/models/ExternalImportToken.d.ts +2 -2
  189. package/dist/openapi/models/ExternalImportToken.js +2 -2
  190. package/dist/openapi/models/ExternalSource.d.ts +2 -2
  191. package/dist/openapi/models/ExternalSource.js +2 -2
  192. package/dist/openapi/models/FeatureNotAvailableResponse.d.ts +14 -5
  193. package/dist/openapi/models/FeatureNotAvailableResponse.js +2 -2
  194. package/dist/openapi/models/FeatureTierRestrictedResponse.d.ts +14 -5
  195. package/dist/openapi/models/FeatureTierRestrictedResponse.js +2 -2
  196. package/dist/openapi/models/FeatureViolation.d.ts +2 -2
  197. package/dist/openapi/models/FeatureViolation.js +2 -2
  198. package/dist/openapi/models/GetProfile200Response.d.ts +2 -2
  199. package/dist/openapi/models/GetProfile200Response.js +2 -2
  200. package/dist/openapi/models/GetProfile200ResponseData.d.ts +2 -2
  201. package/dist/openapi/models/GetProfile200ResponseData.js +2 -2
  202. package/dist/openapi/models/ImageEncodeCapabilities.d.ts +2 -2
  203. package/dist/openapi/models/ImageEncodeCapabilities.js +2 -2
  204. package/dist/openapi/models/JobDefinition.d.ts +2 -2
  205. package/dist/openapi/models/JobDefinition.js +2 -2
  206. package/dist/openapi/models/JobDownload.d.ts +2 -2
  207. package/dist/openapi/models/JobDownload.js +2 -2
  208. package/dist/openapi/models/JobInputV2.d.ts +2 -2
  209. package/dist/openapi/models/JobInputV2.js +2 -2
  210. package/dist/openapi/models/JobMediaClass.d.ts +2 -2
  211. package/dist/openapi/models/JobMediaClass.js +2 -2
  212. package/dist/openapi/models/JobOutputSource.d.ts +2 -2
  213. package/dist/openapi/models/JobOutputSource.js +2 -2
  214. package/dist/openapi/models/JobResponse.d.ts +2 -2
  215. package/dist/openapi/models/JobResponse.js +2 -2
  216. package/dist/openapi/models/JobStatus.d.ts +2 -2
  217. package/dist/openapi/models/JobStatus.js +2 -2
  218. package/dist/openapi/models/JobType.d.ts +2 -2
  219. package/dist/openapi/models/JobType.js +2 -2
  220. package/dist/openapi/models/LivenessResponse.d.ts +2 -2
  221. package/dist/openapi/models/LivenessResponse.js +2 -2
  222. package/dist/openapi/models/LoginUser200Response.d.ts +2 -2
  223. package/dist/openapi/models/LoginUser200Response.js +2 -2
  224. package/dist/openapi/models/LoginUser200ResponseData.d.ts +2 -2
  225. package/dist/openapi/models/LoginUser200ResponseData.js +2 -2
  226. package/dist/openapi/models/LoginUser200ResponseDataUser.d.ts +2 -2
  227. package/dist/openapi/models/LoginUser200ResponseDataUser.js +2 -2
  228. package/dist/openapi/models/LoginUser401Response.d.ts +14 -5
  229. package/dist/openapi/models/LoginUser401Response.js +2 -2
  230. package/dist/openapi/models/LoginUserRequest.d.ts +2 -2
  231. package/dist/openapi/models/LoginUserRequest.js +2 -2
  232. package/dist/openapi/models/LongFormConcurrencyLimitResponse.d.ts +14 -5
  233. package/dist/openapi/models/LongFormConcurrencyLimitResponse.js +2 -2
  234. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.d.ts +2 -2
  235. package/dist/openapi/models/LongFormConcurrencyLimitResponseAllOfLinks.js +2 -2
  236. package/dist/openapi/models/MetadataResponse.d.ts +2 -2
  237. package/dist/openapi/models/MetadataResponse.js +2 -2
  238. package/dist/openapi/models/MetadataResponseDimensions.d.ts +2 -2
  239. package/dist/openapi/models/MetadataResponseDimensions.js +2 -2
  240. package/dist/openapi/models/MetadataResponseExif.d.ts +2 -2
  241. package/dist/openapi/models/MetadataResponseExif.js +2 -2
  242. package/dist/openapi/models/MetadataResponseExifGps.d.ts +2 -2
  243. package/dist/openapi/models/MetadataResponseExifGps.js +2 -2
  244. package/dist/openapi/models/MetadataSuccessEnvelope.d.ts +2 -2
  245. package/dist/openapi/models/MetadataSuccessEnvelope.js +2 -2
  246. package/dist/openapi/models/MimeGroupSchema.d.ts +39 -3
  247. package/dist/openapi/models/MimeGroupSchema.js +12 -2
  248. package/dist/openapi/models/MultiInputSource.d.ts +2 -2
  249. package/dist/openapi/models/MultiInputSource.js +2 -2
  250. package/dist/openapi/models/MultipartCompleteRequest.d.ts +2 -2
  251. package/dist/openapi/models/MultipartCompleteRequest.js +2 -2
  252. package/dist/openapi/models/MultipartCompleteRequestPartsInner.d.ts +2 -2
  253. package/dist/openapi/models/MultipartCompleteRequestPartsInner.js +2 -2
  254. package/dist/openapi/models/MultipartCompleteResponse.d.ts +2 -2
  255. package/dist/openapi/models/MultipartCompleteResponse.js +2 -2
  256. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.d.ts +2 -2
  257. package/dist/openapi/models/MultipartCompleteSuccessEnvelope.js +2 -2
  258. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.d.ts +2 -2
  259. package/dist/openapi/models/MultipartInitiateRequestMetadataHint.js +2 -2
  260. package/dist/openapi/models/MultipartInitiateResponse.d.ts +2 -2
  261. package/dist/openapi/models/MultipartInitiateResponse.js +2 -2
  262. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.d.ts +2 -2
  263. package/dist/openapi/models/MultipartInitiateSuccessEnvelope.js +2 -2
  264. package/dist/openapi/models/MultipartKeepaliveResponse.d.ts +2 -2
  265. package/dist/openapi/models/MultipartKeepaliveResponse.js +2 -2
  266. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.d.ts +2 -2
  267. package/dist/openapi/models/MultipartKeepaliveSuccessEnvelope.js +2 -2
  268. package/dist/openapi/models/MultipartPartListing.d.ts +2 -2
  269. package/dist/openapi/models/MultipartPartListing.js +2 -2
  270. package/dist/openapi/models/MultipartPresignRequest.d.ts +2 -2
  271. package/dist/openapi/models/MultipartPresignRequest.js +2 -2
  272. package/dist/openapi/models/MultipartPresignResponse.d.ts +2 -2
  273. package/dist/openapi/models/MultipartPresignResponse.js +2 -2
  274. package/dist/openapi/models/MultipartPresignSuccessEnvelope.d.ts +2 -2
  275. package/dist/openapi/models/MultipartPresignSuccessEnvelope.js +2 -2
  276. package/dist/openapi/models/MultipartStatusResponse.d.ts +2 -2
  277. package/dist/openapi/models/MultipartStatusResponse.js +2 -2
  278. package/dist/openapi/models/MultipartStatusSuccessEnvelope.d.ts +2 -2
  279. package/dist/openapi/models/MultipartStatusSuccessEnvelope.js +2 -2
  280. package/dist/openapi/models/NotifyConfig.d.ts +9 -5
  281. package/dist/openapi/models/NotifyConfig.js +2 -2
  282. package/dist/openapi/models/OperationCapability.d.ts +2 -2
  283. package/dist/openapi/models/OperationCapability.js +2 -2
  284. package/dist/openapi/models/OperationDefinition.d.ts +2 -2
  285. package/dist/openapi/models/OperationDefinition.js +2 -2
  286. package/dist/openapi/models/OperationDownload.d.ts +2 -2
  287. package/dist/openapi/models/OperationDownload.js +2 -2
  288. package/dist/openapi/models/OperationInputModel.d.ts +2 -2
  289. package/dist/openapi/models/OperationInputModel.js +2 -2
  290. package/dist/openapi/models/OperationMessageParamsValue.d.ts +25 -0
  291. package/dist/openapi/models/OperationMessageParamsValue.js +31 -0
  292. package/dist/openapi/models/OperationResponse.d.ts +36 -2
  293. package/dist/openapi/models/OperationResponse.js +8 -2
  294. package/dist/openapi/models/OperationResult.d.ts +2 -2
  295. package/dist/openapi/models/OperationResult.js +2 -2
  296. package/dist/openapi/models/OperationResultMetadata.d.ts +29 -3
  297. package/dist/openapi/models/OperationResultMetadata.js +6 -2
  298. package/dist/openapi/models/OperationResultMetrics.d.ts +2 -2
  299. package/dist/openapi/models/OperationResultMetrics.js +2 -2
  300. package/dist/openapi/models/OperationSchemaDefinition.d.ts +5 -6
  301. package/dist/openapi/models/OperationSchemaDefinition.js +2 -2
  302. package/dist/openapi/models/OperationStatus.d.ts +2 -2
  303. package/dist/openapi/models/OperationStatus.js +2 -2
  304. package/dist/openapi/models/OperationType.d.ts +10 -4
  305. package/dist/openapi/models/OperationType.js +10 -4
  306. package/dist/openapi/models/OperationsSchemaResponse.d.ts +2 -2
  307. package/dist/openapi/models/OperationsSchemaResponse.js +2 -2
  308. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.d.ts +2 -2
  309. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeatures.js +2 -2
  310. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.d.ts +2 -2
  311. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDelivery.js +2 -2
  312. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.d.ts +2 -2
  313. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliveryMode.js +2 -2
  314. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.d.ts +2 -2
  315. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesDeliverySelection.js +2 -2
  316. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.d.ts +2 -2
  317. package/dist/openapi/models/OperationsSchemaResponseWorkflowFeaturesProcessing.js +2 -2
  318. package/dist/openapi/models/OptionSchema.d.ts +36 -2
  319. package/dist/openapi/models/OptionSchema.js +10 -2
  320. package/dist/openapi/models/OutputProperties.d.ts +2 -2
  321. package/dist/openapi/models/OutputProperties.js +2 -2
  322. package/dist/openapi/models/OutputPropertiesIsAnimated.d.ts +2 -2
  323. package/dist/openapi/models/OutputPropertiesIsAnimated.js +2 -2
  324. package/dist/openapi/models/PerClassAvailabilityEntry.d.ts +2 -2
  325. package/dist/openapi/models/PerClassAvailabilityEntry.js +2 -2
  326. package/dist/openapi/models/PerRoleCardinalityEntry.d.ts +2 -2
  327. package/dist/openapi/models/PerRoleCardinalityEntry.js +2 -2
  328. package/dist/openapi/models/PerValueAvailabilityEntry.d.ts +2 -2
  329. package/dist/openapi/models/PerValueAvailabilityEntry.js +2 -2
  330. package/dist/openapi/models/PresignedUrlPart.d.ts +2 -2
  331. package/dist/openapi/models/PresignedUrlPart.js +2 -2
  332. package/dist/openapi/models/ProbePendingResponse.d.ts +14 -5
  333. package/dist/openapi/models/ProbePendingResponse.js +2 -2
  334. package/dist/openapi/models/ProcessingClass.d.ts +2 -2
  335. package/dist/openapi/models/ProcessingClass.js +2 -2
  336. package/dist/openapi/models/ProcessingClassBandViolation.d.ts +2 -2
  337. package/dist/openapi/models/ProcessingClassBandViolation.js +2 -2
  338. package/dist/openapi/models/ProcessingClassConstraints.d.ts +2 -2
  339. package/dist/openapi/models/ProcessingClassConstraints.js +2 -2
  340. package/dist/openapi/models/ProcessingClassEntry.d.ts +2 -2
  341. package/dist/openapi/models/ProcessingClassEntry.js +2 -2
  342. package/dist/openapi/models/ProcessingClassExceedsBandResponse.d.ts +14 -5
  343. package/dist/openapi/models/ProcessingClassExceedsBandResponse.js +2 -2
  344. package/dist/openapi/models/ProcessingClassHint.d.ts +2 -2
  345. package/dist/openapi/models/ProcessingClassHint.js +2 -2
  346. package/dist/openapi/models/ProcessingClassReason.d.ts +2 -2
  347. package/dist/openapi/models/ProcessingClassReason.js +2 -2
  348. package/dist/openapi/models/ProcessingClassRejectReason.d.ts +2 -2
  349. package/dist/openapi/models/ProcessingClassRejectReason.js +2 -2
  350. package/dist/openapi/models/ProcessingPlan.d.ts +2 -2
  351. package/dist/openapi/models/ProcessingPlan.js +2 -2
  352. package/dist/openapi/models/ProcessingPlanJob.d.ts +2 -2
  353. package/dist/openapi/models/ProcessingPlanJob.js +2 -2
  354. package/dist/openapi/models/ReEncodeDecision.d.ts +2 -2
  355. package/dist/openapi/models/ReEncodeDecision.js +2 -2
  356. package/dist/openapi/models/ReadinessResponse.d.ts +2 -2
  357. package/dist/openapi/models/ReadinessResponse.js +2 -2
  358. package/dist/openapi/models/RegisterUser422Response.d.ts +2 -2
  359. package/dist/openapi/models/RegisterUser422Response.js +2 -2
  360. package/dist/openapi/models/RegisterUserRequest.d.ts +2 -2
  361. package/dist/openapi/models/RegisterUserRequest.js +2 -2
  362. package/dist/openapi/models/RequestAccountDeletion200Response.d.ts +2 -2
  363. package/dist/openapi/models/RequestAccountDeletion200Response.js +2 -2
  364. package/dist/openapi/models/RequestAccountDeletion200ResponseData.d.ts +2 -2
  365. package/dist/openapi/models/RequestAccountDeletion200ResponseData.js +2 -2
  366. package/dist/openapi/models/RequestAccountDeletionRequest.d.ts +2 -2
  367. package/dist/openapi/models/RequestAccountDeletionRequest.js +2 -2
  368. package/dist/openapi/models/ResendVerificationEmailRequest.d.ts +2 -2
  369. package/dist/openapi/models/ResendVerificationEmailRequest.js +2 -2
  370. package/dist/openapi/models/ResetPasswordRequest.d.ts +2 -2
  371. package/dist/openapi/models/ResetPasswordRequest.js +2 -2
  372. package/dist/openapi/models/ResponseEnvelope.d.ts +2 -2
  373. package/dist/openapi/models/ResponseEnvelope.js +2 -2
  374. package/dist/openapi/models/RetryResponse.d.ts +2 -2
  375. package/dist/openapi/models/RetryResponse.js +2 -2
  376. package/dist/openapi/models/RetrySuccessEnvelope.d.ts +2 -2
  377. package/dist/openapi/models/RetrySuccessEnvelope.js +2 -2
  378. package/dist/openapi/models/SseCompletionBase.d.ts +2 -2
  379. package/dist/openapi/models/SseCompletionBase.js +2 -2
  380. package/dist/openapi/models/SseConnectionLimitResponse.d.ts +14 -5
  381. package/dist/openapi/models/SseConnectionLimitResponse.js +2 -2
  382. package/dist/openapi/models/SseEventType.d.ts +2 -2
  383. package/dist/openapi/models/SseEventType.js +2 -2
  384. package/dist/openapi/models/SseJobCompletedData.d.ts +2 -2
  385. package/dist/openapi/models/SseJobCompletedData.js +2 -2
  386. package/dist/openapi/models/SseJobFailedData.d.ts +2 -2
  387. package/dist/openapi/models/SseJobFailedData.js +2 -2
  388. package/dist/openapi/models/SseMultiOutputCompletion.d.ts +2 -2
  389. package/dist/openapi/models/SseMultiOutputCompletion.js +2 -2
  390. package/dist/openapi/models/SseMultiOutputCompletionMetrics.d.ts +2 -2
  391. package/dist/openapi/models/SseMultiOutputCompletionMetrics.js +2 -2
  392. package/dist/openapi/models/SseMultiOutputCompletionWithKind.d.ts +2 -2
  393. package/dist/openapi/models/SseMultiOutputCompletionWithKind.js +2 -2
  394. package/dist/openapi/models/SseMultiOutputResultEntry.d.ts +2 -2
  395. package/dist/openapi/models/SseMultiOutputResultEntry.js +2 -2
  396. package/dist/openapi/models/SseOperationCompletedData.d.ts +2 -2
  397. package/dist/openapi/models/SseOperationCompletedData.js +2 -2
  398. package/dist/openapi/models/SseOperationCompletionResult.d.ts +2 -2
  399. package/dist/openapi/models/SseOperationCompletionResult.js +2 -2
  400. package/dist/openapi/models/SseOperationFailedData.d.ts +33 -2
  401. package/dist/openapi/models/SseOperationFailedData.js +8 -2
  402. package/dist/openapi/models/SseOperationProgressData.d.ts +2 -2
  403. package/dist/openapi/models/SseOperationProgressData.js +2 -2
  404. package/dist/openapi/models/SseSingleOutputCompletion.d.ts +2 -2
  405. package/dist/openapi/models/SseSingleOutputCompletion.js +2 -2
  406. package/dist/openapi/models/SseWorkflowTerminalData.d.ts +2 -2
  407. package/dist/openapi/models/SseWorkflowTerminalData.js +2 -2
  408. package/dist/openapi/models/TierRestrictionKind.d.ts +2 -2
  409. package/dist/openapi/models/TierRestrictionKind.js +2 -2
  410. package/dist/openapi/models/TierRestrictionResponse.d.ts +14 -5
  411. package/dist/openapi/models/TierRestrictionResponse.js +2 -2
  412. package/dist/openapi/models/UpdateProfile200Response.d.ts +2 -2
  413. package/dist/openapi/models/UpdateProfile200Response.js +2 -2
  414. package/dist/openapi/models/UpdateProfile200ResponseData.d.ts +2 -2
  415. package/dist/openapi/models/UpdateProfile200ResponseData.js +2 -2
  416. package/dist/openapi/models/UpdateProfile422Response.d.ts +2 -2
  417. package/dist/openapi/models/UpdateProfile422Response.js +2 -2
  418. package/dist/openapi/models/UpdateProfileRequest.d.ts +2 -2
  419. package/dist/openapi/models/UpdateProfileRequest.js +2 -2
  420. package/dist/openapi/models/UploadConstraintsApplied.d.ts +2 -2
  421. package/dist/openapi/models/UploadConstraintsApplied.js +2 -2
  422. package/dist/openapi/models/UploadDurationExceedsTierResponse.d.ts +14 -5
  423. package/dist/openapi/models/UploadDurationExceedsTierResponse.js +2 -2
  424. package/dist/openapi/models/UploadFile403Response.d.ts +2 -2
  425. package/dist/openapi/models/UploadFile403Response.js +2 -2
  426. package/dist/openapi/models/UploadFile422Response.d.ts +2 -2
  427. package/dist/openapi/models/UploadFile422Response.js +2 -2
  428. package/dist/openapi/models/UploadProbeMediaMetadata.d.ts +2 -2
  429. package/dist/openapi/models/UploadProbeMediaMetadata.js +2 -2
  430. package/dist/openapi/models/UploadProbeProcessingClass.d.ts +4 -6
  431. package/dist/openapi/models/UploadProbeProcessingClass.js +4 -6
  432. package/dist/openapi/models/UploadProbeResponse.d.ts +2 -2
  433. package/dist/openapi/models/UploadProbeResponse.js +2 -2
  434. package/dist/openapi/models/UploadProbeStatus.d.ts +2 -2
  435. package/dist/openapi/models/UploadProbeStatus.js +2 -2
  436. package/dist/openapi/models/UploadProbeSuccessEnvelope.d.ts +2 -2
  437. package/dist/openapi/models/UploadProbeSuccessEnvelope.js +2 -2
  438. package/dist/openapi/models/UploadResponse.d.ts +2 -2
  439. package/dist/openapi/models/UploadResponse.js +2 -2
  440. package/dist/openapi/models/UploadSizeExceedsTierResponse.d.ts +14 -5
  441. package/dist/openapi/models/UploadSizeExceedsTierResponse.js +2 -2
  442. package/dist/openapi/models/UploadSource.d.ts +2 -2
  443. package/dist/openapi/models/UploadSource.js +2 -2
  444. package/dist/openapi/models/UploadSuccessEnvelope.d.ts +2 -2
  445. package/dist/openapi/models/UploadSuccessEnvelope.js +2 -2
  446. package/dist/openapi/models/UploadThresholds.d.ts +2 -2
  447. package/dist/openapi/models/UploadThresholds.js +2 -2
  448. package/dist/openapi/models/UserTier.d.ts +2 -2
  449. package/dist/openapi/models/UserTier.js +2 -2
  450. package/dist/openapi/models/ValidationErrorEnvelope.d.ts +19 -8
  451. package/dist/openapi/models/ValidationErrorEnvelope.js +2 -2
  452. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.d.ts +2 -2
  453. package/dist/openapi/models/ValidationErrorEnvelopeDetailsInner.js +2 -2
  454. package/dist/openapi/models/VerifyEmailRequest.d.ts +2 -2
  455. package/dist/openapi/models/VerifyEmailRequest.js +2 -2
  456. package/dist/openapi/models/WarningType.d.ts +2 -2
  457. package/dist/openapi/models/WarningType.js +2 -2
  458. package/dist/openapi/models/WebhookOperationContext.d.ts +2 -2
  459. package/dist/openapi/models/WebhookOperationContext.js +2 -2
  460. package/dist/openapi/models/WebhookPayload.d.ts +2 -2
  461. package/dist/openapi/models/WebhookPayload.js +2 -2
  462. package/dist/openapi/models/WorkflowArchiveResponse.d.ts +2 -2
  463. package/dist/openapi/models/WorkflowArchiveResponse.js +2 -2
  464. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.d.ts +2 -2
  465. package/dist/openapi/models/WorkflowArchiveSuccessEnvelope.js +2 -2
  466. package/dist/openapi/models/WorkflowCancelBillingEffect.d.ts +7 -6
  467. package/dist/openapi/models/WorkflowCancelBillingEffect.js +7 -6
  468. package/dist/openapi/models/WorkflowCancelResponse.d.ts +2 -2
  469. package/dist/openapi/models/WorkflowCancelResponse.js +2 -2
  470. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.d.ts +2 -2
  471. package/dist/openapi/models/WorkflowCancelSuccessEnvelope.js +2 -2
  472. package/dist/openapi/models/WorkflowCreateRequest.d.ts +11 -14
  473. package/dist/openapi/models/WorkflowCreateRequest.js +2 -2
  474. package/dist/openapi/models/WorkflowCreateResponse.d.ts +2 -2
  475. package/dist/openapi/models/WorkflowCreateResponse.js +2 -2
  476. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.d.ts +2 -2
  477. package/dist/openapi/models/WorkflowCreateSuccessEnvelope.js +2 -2
  478. package/dist/openapi/models/WorkflowCreditSummary.d.ts +2 -2
  479. package/dist/openapi/models/WorkflowCreditSummary.js +2 -2
  480. package/dist/openapi/models/WorkflowDownloadResponse.d.ts +2 -2
  481. package/dist/openapi/models/WorkflowDownloadResponse.js +2 -2
  482. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.d.ts +2 -2
  483. package/dist/openapi/models/WorkflowDownloadSuccessEnvelope.js +2 -2
  484. package/dist/openapi/models/WorkflowEdge.d.ts +2 -2
  485. package/dist/openapi/models/WorkflowEdge.js +2 -2
  486. package/dist/openapi/models/WorkflowExpiredResponse.d.ts +14 -5
  487. package/dist/openapi/models/WorkflowExpiredResponse.js +2 -2
  488. package/dist/openapi/models/WorkflowListResponse.d.ts +2 -2
  489. package/dist/openapi/models/WorkflowListResponse.js +2 -2
  490. package/dist/openapi/models/WorkflowListSuccessEnvelope.d.ts +2 -2
  491. package/dist/openapi/models/WorkflowListSuccessEnvelope.js +2 -2
  492. package/dist/openapi/models/WorkflowPauseRequiredAction.d.ts +2 -2
  493. package/dist/openapi/models/WorkflowPauseRequiredAction.js +2 -2
  494. package/dist/openapi/models/WorkflowPausedDetail.d.ts +2 -2
  495. package/dist/openapi/models/WorkflowPausedDetail.js +2 -2
  496. package/dist/openapi/models/WorkflowPausedDetailLinks.d.ts +2 -2
  497. package/dist/openapi/models/WorkflowPausedDetailLinks.js +2 -2
  498. package/dist/openapi/models/WorkflowProcessing.d.ts +2 -2
  499. package/dist/openapi/models/WorkflowProcessing.js +2 -2
  500. package/dist/openapi/models/WorkflowRestoreResponse.d.ts +2 -2
  501. package/dist/openapi/models/WorkflowRestoreResponse.js +2 -2
  502. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.d.ts +2 -2
  503. package/dist/openapi/models/WorkflowRestoreSuccessEnvelope.js +2 -2
  504. package/dist/openapi/models/WorkflowResumeResponse.d.ts +2 -2
  505. package/dist/openapi/models/WorkflowResumeResponse.js +2 -2
  506. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.d.ts +2 -2
  507. package/dist/openapi/models/WorkflowResumeSuccessEnvelope.js +2 -2
  508. package/dist/openapi/models/WorkflowSource.d.ts +2 -2
  509. package/dist/openapi/models/WorkflowSource.js +2 -2
  510. package/dist/openapi/models/WorkflowStatus.d.ts +2 -2
  511. package/dist/openapi/models/WorkflowStatus.js +2 -2
  512. package/dist/openapi/models/WorkflowStatusResponse.d.ts +5 -3
  513. package/dist/openapi/models/WorkflowStatusResponse.js +2 -2
  514. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.d.ts +2 -2
  515. package/dist/openapi/models/WorkflowStatusSuccessEnvelope.js +2 -2
  516. package/dist/openapi/models/WorkflowSummary.d.ts +2 -2
  517. package/dist/openapi/models/WorkflowSummary.js +2 -2
  518. package/dist/openapi/models/WorkflowSummaryJob.d.ts +2 -2
  519. package/dist/openapi/models/WorkflowSummaryJob.js +2 -2
  520. package/dist/openapi/models/WorkflowWarning.d.ts +2 -2
  521. package/dist/openapi/models/WorkflowWarning.js +2 -2
  522. package/dist/openapi/models/WorkflowWarningSeverity.d.ts +2 -2
  523. package/dist/openapi/models/WorkflowWarningSeverity.js +2 -2
  524. package/dist/openapi/models/index.d.ts +3 -0
  525. package/dist/openapi/models/index.js +3 -0
  526. package/dist/openapi/runtime.d.ts +2 -2
  527. package/dist/openapi/runtime.js +2 -2
  528. package/dist/operations/archive.metadata.js +1 -0
  529. package/dist/operations/audio_overlay.metadata.js +1 -0
  530. package/dist/operations/audio_to_video.metadata.js +1 -0
  531. package/dist/operations/audio_watermark.metadata.js +4 -9
  532. package/dist/operations/custom_luma.metadata.js +1 -0
  533. package/dist/operations/image_watermark.metadata.js +1 -0
  534. package/dist/operations/merge.metadata.js +1 -0
  535. package/dist/operations/metadata-types.d.ts +2 -0
  536. package/dist/operations/split.metadata.js +12 -3
  537. package/dist/operations/text_watermark.metadata.js +1 -0
  538. package/dist/operations/video_text_watermark.metadata.js +2 -0
  539. package/dist/operations/video_watermark.metadata.js +1 -0
  540. package/openapi/README.md +1 -1
  541. package/openapi/api.yaml +536 -145
  542. package/operation-capabilities/operation-capabilities.json +1 -1
  543. package/operations/schemas/audio_watermark.yaml +34 -33
  544. package/operations/schemas/compress.yaml +256 -163
  545. package/operations/schemas/convert.yaml +11 -0
  546. package/operations/schemas/merge.yaml +7 -1
  547. package/operations/schemas/split.yaml +133 -83
  548. package/operations/schemas/thumbnail.yaml +34 -26
  549. package/operations/schemas/video_text_watermark.yaml +57 -47
  550. package/operations/schemas/video_watermark.yaml +33 -28
  551. package/package.json +3 -3
@@ -66,7 +66,8 @@ operation:
66
66
 
67
67
  **`precision` flag** (audio + video only): `fast` (default) =
68
68
  packet-boundary approximate cuts; `exact` = re-encode-aligned
69
- precise cuts. Mime_group scoping is the gate — precision does
69
+ precise cuts (`planned` — the API refuses it at create until the
70
+ re-encode path is priced). Mime_group scoping is the gate — precision does
70
71
  NOT apply to GIF or PDF (frame extraction is exact and PDF page
71
72
  selection is exact by definition).
72
73
 
@@ -92,8 +93,9 @@ operation:
92
93
  description: |
93
94
  Silence-detect cut mode for audio (`mode: silence` —
94
95
  server-side silence detection). `beta`: shape-stable + opt-in.
95
- The mode ships dark until the API regenerates enum validation
96
- to accept `mode: silence`. The `silence` enum value carries a
96
+ Accepted at workflow-create by any API build that vendors this
97
+ value, since the validator reads the enum from the vendored
98
+ schema. The `silence` enum value carries a
97
99
  matching `per_value_availability: beta` on `audio.mode`.
98
100
 
99
101
  mime_groups:
@@ -149,12 +151,17 @@ operation:
149
151
  pattern: '^\d+(-\d+)?(,\d+(-\d+)?)*$'
150
152
  required: true
151
153
  depends_on: { mode: page_range }
152
- description: |
153
- Page-range expression (e.g. "1-5", "1,3,5-7", "10-20").
154
- 1-based inclusive. Required when `mode: page_range`.
155
- Resolved page count MUST be <= 200 (`invalid_options`
156
- 422 if exceeded — cross-ref
157
- [`WgCqnMRa`](https://trello.com/c/WgCqnMRa)).
154
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
155
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
156
+ # Page-range expression (e.g. "1-5", "1,3,5-7", "10-20").
157
+ # 1-based inclusive. Required when `mode: page_range`.
158
+ # Resolved page count MUST be <= 200 (`invalid_options`
159
+ # 422 if exceeded — cross-ref
160
+ # [`WgCqnMRa`](https://trello.com/c/WgCqnMRa)).
161
+ description: >-
162
+ Pages to extract, e.g. "1-5", "1,3,5-7" or "10-20" — 1-based and
163
+ inclusive. Required when `mode: page_range`. At most 200 pages;
164
+ more is refused with `invalid_options`.
158
165
 
159
166
  page_groups:
160
167
  type: integer
@@ -196,6 +203,13 @@ operation:
196
203
  # The two `precision` values have genuinely different duration behaviour
197
204
  # and the contract has no primitive that can say so:
198
205
  #
206
+ # 🔴 TODAY THE API REFUSES `exact` AT CREATE for every split (audio and
207
+ # video) — the deliberate "re-encode path not yet priced" gate
208
+ # (`compression_api` SplitOptionsValidator, reported 2026-09-23, Q8QsYYNn).
209
+ # So `exact` never reaches a worker, and `per_value_availability` tags it
210
+ # `planned`. The worker behaviour below is what `exact` WILL do once the
211
+ # API admits it:
212
+ #
199
213
  # `exact` computes a time budget from the probed duration and refuses
200
214
  # when it does not fit — WORKER-SIDE, after download and probe
201
215
  # (`processor.rs` reads `probe.duration_secs`), returning a
@@ -247,7 +261,8 @@ operation:
247
261
  # ceiling is enforced there — withdrawing `fast` jobs that complete today,
248
262
  # which is the direction the SVG incident ran in. A higher number would
249
263
  # under-state what `exact` refuses.
250
- # ⚠️ AND NEITHER BOUND IS ENFORCED AT CREATE TODAY: both are worker-side,
264
+ # ⚠️ AND NEITHER DURATION BOUND IS ENFORCED AT CREATE TODAY (`exact` is
265
+ # refused at create outright, which is not a duration bound): both are worker-side,
251
266
  # after the job is accepted, billed and downloaded. Declaring one would MOVE
252
267
  # the refusal earlier, which is a real improvement for the value it fits and
253
268
  # a real withdrawal for the value it does not.
@@ -368,78 +383,106 @@ operation:
368
383
  type: enum
369
384
  values: [fast, exact]
370
385
  default: fast
386
+ per_value_availability:
387
+ # The API refuses `exact` at create for every split — the deliberate
388
+ # unpriced re-encode gate (Q8QsYYNn). Advertising it as callable
389
+ # was a silent rejection of a spec-valid value.
390
+ exact: { availability: planned }
371
391
  # Don't use "keyframe" language here — that's video-only;
372
392
  # audio drift is packet-boundary.
373
- description: |
374
- Cut precision. Under `fast`, audio cuts are
375
- packet-boundary approximate (drift bounded by codec
376
- packet size — typically <= 23ms for AAC, <= 26ms for
377
- MP3). Under `exact`, the server re-encodes to align cuts
378
- precisely at the requested timestamps (slower, larger
379
- output, but sample-accurate).
380
-
381
- 🔴 **THE TWO VALUES HAVE DIFFERENT DURATION LIMITS, AND ONLY
382
- ONE OF THEM REFUSES.** This is stated here, on the option a
383
- caller chooses, because the group declares
384
- `input_size_bound: processing_time` and no
385
- `max_input_duration` — there is no per-value constraint
386
- primitive to carry it.
387
-
388
- ⛔ **NEITHER VALUE GIVES A PRE-FLIGHT SIGNAL. BOTH FAIL AFTER
389
- THE JOB IS ACCEPTED AND BILLED.** No duration ceiling is
390
- declared on this group, so the API cannot enforce one at
391
- create; the worker's own check reads a probe result, which
392
- means the input has already been uploaded, accepted and
393
- downloaded.
394
-
395
- - **`exact`: refused when its computed time budget does not
396
- fit** — but WORKER-SIDE, after download and probe. The job
397
- returns a terminal `OperationResult` with `error_code:
398
- invalid_options`. ⚠️ It is NOT an HTTP 422 and it is not a
399
- create-time rejection: a worker cannot emit a status code.
400
- The boundary does not move with `count` — once the cap
401
- binds, the per-output term stops mattering.
402
- - **`fast` (the default): no boundary and no refusal at
403
- all.** Past the point where its deadline saturates, the time
404
- budget stops growing while the work does, so the job fails
405
- as a **TIMEOUT** rather than with any reason a caller can
406
- act on.
407
-
408
- 🔴 **TWO LIMITS EXIST AND THE SMALLER ONE BINDS.** The worker
409
- carries an internal time budget and the Lambda function
410
- carries a platform timeout; **the effective boundary is the
411
- LOWER of the two**, and the internal budget sits ABOVE the
412
- platform timeout.
413
-
414
- ⇒ **`exact`'s refusal threshold is calibrated to a limit that
415
- is not the one that ends the job.** Its check does fire, and
416
- fires early — it reads the probe result before any re-encode
417
- starts, so a long-but-small input is refused within seconds.
418
- But there is a band of inputs it judges FINE which the
419
- platform then hard-kills mid-encode, with no named cause. **So
420
- `exact` refusing is a reliable signal; `exact` NOT refusing is
421
- not a promise the job will finish.**
422
-
423
- ⛔ **NO SECONDS FIGURE IS GIVEN HERE, DELIBERATELY.** v2.205.0
424
- published figures keyed to the crate constant — the larger
425
- limit, the one that does not bind. The effective number lands
426
- only when that derivation settles AND a job is measured near
427
- it. **A published number a caller pre-validates against is
428
- worse wrong than absent**; the shape above is what a caller can
429
- actually act on today, which is: do not rely on either value
430
- failing gracefully.
431
-
432
- ⇒ `exact` at least names a cause when it is reached; `fast`
433
- never does. **Both are the accept-then-bill-then-fail shape**,
434
- which is the very thing this group's `input_size_bound`
435
- declaration exists to stop happening silently on the BYTE
436
- axis. On the DURATION axis it is stated here and not yet
437
- fixed.
438
-
439
- ⚠️ Read from `compression_lambdas` `crates/split`. **NOT
440
- measured** — their audio fixtures reach 145 s, a small
441
- fraction of any candidate cap, so this describes what the code
442
- will do rather than observed behaviour at the boundary.
393
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
394
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
395
+ # Cut precision. Under `fast`, audio cuts are
396
+ # packet-boundary approximate (drift bounded by codec
397
+ # packet size — typically <= 23ms for AAC, <= 26ms for
398
+ # MP3). Under `exact`, the server re-encodes to align cuts
399
+ # precisely at the requested timestamps (slower, larger
400
+ # output, but sample-accurate).
401
+ #
402
+ # 🔴 **THE TWO VALUES HAVE DIFFERENT DURATION LIMITS, AND ONLY
403
+ # ONE OF THEM REFUSES.** This is stated here, on the option a
404
+ # caller chooses, because the group declares
405
+ # `input_size_bound: processing_time` and no
406
+ # `max_input_duration` — there is no per-value constraint
407
+ # primitive to carry it.
408
+ #
409
+ # 🔴 **TODAY `exact` IS REFUSED AT CREATE** — the API does not
410
+ # yet admit it for any split (the re-encode path is not yet
411
+ # priced), so it is tagged `planned` and a request carrying it
412
+ # is rejected before anything is uploaded, accepted or billed.
413
+ # **Everything below about `exact` describes the worker, i.e.
414
+ # what it will do once the API admits it.**
415
+ #
416
+ # `exact` is refused at create with `feature_not_available` (422),
417
+ # the contract's answer for a `planned` value (api
418
+ # SplitOptionsValidator leaves it to the generic planned-option
419
+ # gate; SplitAudioActivationCreateTest asserts the error_type).
420
+ # A consumer should not send it, as the `planned` tag says.
421
+ #
422
+ # ⛔ **`fast` GIVES NO PRE-FLIGHT SIGNAL, and neither will
423
+ # `exact` once admitted: both fail AFTER THE JOB IS ACCEPTED
424
+ # AND BILLED.** No duration ceiling is declared on this group,
425
+ # so the API cannot enforce one at create; the worker's own
426
+ # check reads a probe result, which means the input has already
427
+ # been uploaded, accepted and downloaded.
428
+ #
429
+ # - **`exact` (once admitted): refused when its computed time
430
+ # budget does not fit** — but WORKER-SIDE, after download and
431
+ # probe. The job
432
+ # returns a terminal `OperationResult` with `error_code:
433
+ # invalid_options`. ⚠️ It is NOT an HTTP 422 and it is not a
434
+ # create-time rejection: a worker cannot emit a status code.
435
+ # The boundary does not move with `count` — once the cap
436
+ # binds, the per-output term stops mattering.
437
+ # - **`fast` (the default): no boundary and no refusal at
438
+ # all.** Past the point where its deadline saturates, the time
439
+ # budget stops growing while the work does, so the job fails
440
+ # as a **TIMEOUT** rather than with any reason a caller can
441
+ # act on.
442
+ #
443
+ # 🔴 **TWO LIMITS EXIST AND THE SMALLER ONE BINDS.** The worker
444
+ # carries an internal time budget and the Lambda function
445
+ # carries a platform timeout; **the effective boundary is the
446
+ # LOWER of the two**, and the internal budget sits ABOVE the
447
+ # platform timeout.
448
+ #
449
+ # ⇒ **`exact`'s refusal threshold is calibrated to a limit that
450
+ # is not the one that ends the job.** Its check does fire, and
451
+ # fires early — it reads the probe result before any re-encode
452
+ # starts, so a long-but-small input is refused within seconds.
453
+ # But there is a band of inputs it judges FINE which the
454
+ # platform then hard-kills mid-encode, with no named cause. **So
455
+ # `exact` refusing is a reliable signal; `exact` NOT refusing is
456
+ # not a promise the job will finish.**
457
+ #
458
+ # ⛔ **NO SECONDS FIGURE IS GIVEN HERE, DELIBERATELY.** v2.205.0
459
+ # published figures keyed to the crate constant — the larger
460
+ # limit, the one that does not bind. The effective number lands
461
+ # only when that derivation settles AND a job is measured near
462
+ # it. **A published number a caller pre-validates against is
463
+ # worse wrong than absent**; the shape above is what a caller can
464
+ # actually act on today, which is: do not rely on either value
465
+ # failing gracefully.
466
+ #
467
+ # ⇒ `exact` (once admitted) at least names a cause when it is
468
+ # reached; `fast` never does. **On today's customer path only
469
+ # `fast` is the accept-then-bill-then-fail shape**,
470
+ # which is the very thing this group's `input_size_bound`
471
+ # declaration exists to stop happening silently on the BYTE
472
+ # axis. On the DURATION axis it is stated here and not yet
473
+ # fixed.
474
+ #
475
+ # ⚠️ Read from `compression_lambdas` `crates/split`. **NOT
476
+ # measured** — their audio fixtures reach 145 s, a small
477
+ # fraction of any candidate cap, so this describes what the code
478
+ # will do rather than observed behaviour at the boundary.
479
+ description: >-
480
+ Cut precision. `fast` (default) cuts at packet boundaries, so each cut
481
+ can drift by a few milliseconds (typically up to about 23 ms for AAC and
482
+ 26 ms for MP3). `exact` re-encodes to cut precisely at the requested
483
+ timestamps; it is not yet available and is refused when the workflow is
484
+ created. Very long audio can run out of processing time and fail rather
485
+ than be refused up front.
443
486
 
444
487
  # Video base — same three modes + precision + processing_class.
445
488
  # Long-form routes to `split-video-fargate` (same OperationType,
@@ -458,9 +501,12 @@ operation:
458
501
  max_input_size_bytes: 524288000
459
502
  max_output_size_bytes: 524288000
460
503
  long_form:
461
- # planned -> beta (rcwvUKhI): split-video-fargate worker deployed +
462
- # wired on staging but NOT yet proven end-to-end (first customer-path
463
- # soak incomplete; 4GB+ speed-up unmeasured; fan-out flag-gated dark).
504
+ # planned -> beta (rcwvUKhI). Stays beta until a PRODUCTION
505
+ # `customer_path` run is recorded in availability/prod-verification-
506
+ # log.yaml; worker-direct staging runs up to 3.99 GiB are in the
507
+ # staging log as partial evidence only (no environment axis). Fan-out admission is
508
+ # the API's LONGFORM_FANOUT_ADMISSION_ENABLED, set per environment in
509
+ # compression_terraform; not restated here.
464
510
  # Routes per ADR-0014 §D10 — same split OperationType, dedicated
465
511
  # stream-copy segmenter binary (NOT the long-form compress worker).
466
512
  availability: beta
@@ -531,6 +577,10 @@ operation:
531
577
  type: enum
532
578
  values: [fast, exact]
533
579
  default: fast
580
+ per_value_availability:
581
+ # Refused at create by the API for every split (Q8QsYYNn) as
582
+ # `feature_not_available`; see the note on `audio.options.precision`.
583
+ exact: { availability: planned }
534
584
  description: |
535
585
  Cut precision. Under `fast`, video cuts are keyframe-
536
586
  aligned (drift bounded by GOP size — typically up to 1-2
@@ -66,14 +66,19 @@ operation:
66
66
  max: 100
67
67
  default: 85
68
68
  depends_on: { format: [jpg, webp, png] }
69
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
70
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
71
+ # Output quality for lossy thumbnail formats (jpg / webp / png): higher = better
72
+ # quality, larger file. For PNG, `quality` < 100 applies lossy palette quantization
73
+ # (transparency preserved); `quality: 100` keeps the PNG lossless. Per-format effective
74
+ # default (server-resolved when `quality` is unset, per ADR-0020 D1): PNG → 70 (more
75
+ # aggressive — thumbnails target small files), jpg/webp → 85. The schema `default` is
76
+ # the nominal jpg/webp value (85); the FE shows 70 as the initial PNG slider value.
69
77
  description: >-
70
- Output quality for lossy thumbnail formats (jpg / webp / png): higher =
71
- better quality, larger file. For PNG, `quality` < 100 applies lossy palette
72
- quantization (transparency preserved); `quality: 100` keeps the
73
- PNG lossless. Per-format effective default (server-resolved when `quality`
74
- is unset, per ADR-0020 D1): PNG → 70 (more aggressive — thumbnails target
75
- small files), jpg/webp → 85. The schema `default` is the nominal jpg/webp
76
- value (85); the FE shows 70 as the initial PNG slider value.
78
+ Output quality for jpg, webp and png thumbnails: higher = better quality,
79
+ larger file. For PNG, a value below 100 reduces the colour palette
80
+ (transparency is kept) and 100 keeps it lossless. When unset, PNG
81
+ thumbnails use 70 and jpg/webp use 85.
77
82
  background:
78
83
  type: string
79
84
  pattern: "^#[0-9a-fA-F]{6}$"
@@ -457,26 +462,29 @@ operation:
457
462
  # Cargo.lock via usvg; `quick-xml` is absent.
458
463
  # The build's real shape lives in the ticket and in lambdas' crate. This
459
464
  # file states the CONTRACT: what is advertised, and what the API gates.
465
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
466
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
467
+ # `cover` (the only supported value) = extract the EPUB's declared cover image — the
468
+ # cheap path, no rendering. Cover lookup supports both mechanisms: the EPUB 3
469
+ # `cover-image` property on an OPF manifest item, AND the legacy EPUB 2 `<meta
470
+ # name="cover" content="..."/>` pointing at a manifest item — supporting only the former
471
+ # would miss a large slice of real-world files. Both are staging-proven (pL16ZfOw Wave
472
+ # 3). A cover image is OPTIONAL per W3C EPUB 3.3, so a cover-less EPUB is a REAL and
473
+ # expected case: it fails with `error_code: processing_failed` and `is_retryable:
474
+ # false`. That is the live behaviour, not an aspiration — the worker classifies it as
475
+ # `CoverError::NoCoverDeclared` and maps it there (`epub/error.rs`), and
476
+ # non-retryability is DERIVED from the code rather than set per-call, so it cannot
477
+ # drift. A cover-less EPUB will not grow a cover, so retrying is always futile. A more
478
+ # specific code would be better, and is NOT promised here: `ErrorCode` (asyncapi) is a
479
+ # CLOSED enum with no "no cover" member, so adding one is a real cross-repo co-land
480
+ # (enum edit -> SDK regen -> lockstep). Until then this description states what actually
481
+ # happens — an undecided-reject note on a STABLE route would leave consumers unable to
482
+ # handle a case they will certainly meet.
460
483
  description: >-
461
- `cover` (the only supported value) = extract the EPUB's declared cover
462
- image — the cheap path, no rendering. Cover lookup supports both
463
- mechanisms: the EPUB 3 `cover-image` property on an OPF manifest item,
464
- AND the legacy EPUB 2 `<meta name="cover" content="..."/>` pointing at a
465
- manifest item — supporting only the former would miss a large slice of
466
- real-world files. Both are staging-proven (pL16ZfOw Wave 3).
467
- A cover image is OPTIONAL per W3C EPUB 3.3, so a cover-less EPUB is a
468
- REAL and expected case: it fails with `error_code: processing_failed`
469
- and `is_retryable: false`. That is the live behaviour, not an aspiration
470
- — the worker classifies it as `CoverError::NoCoverDeclared` and maps it
471
- there (`epub/error.rs`), and non-retryability is DERIVED from the code
472
- rather than set per-call, so it cannot drift. A cover-less EPUB will not
473
- grow a cover, so retrying is always futile.
474
- A more specific code would be better, and is NOT promised here:
475
- `ErrorCode` (asyncapi) is a CLOSED enum with no "no cover" member, so
476
- adding one is a real cross-repo co-land (enum edit -> SDK regen ->
477
- lockstep). Until then this description states what actually happens —
478
- an undecided-reject note on a STABLE route would leave consumers unable
479
- to handle a case they will certainly meet.
484
+ `cover` (the only supported value) uses the EPUB's declared cover image;
485
+ no pages are rendered. Both EPUB 3 and legacy EPUB 2 cover declarations
486
+ are recognised. An EPUB without a cover cannot produce a thumbnail: the
487
+ job fails with `processing_failed` and retrying will not help.
480
488
  width:
481
489
  type: integer
482
490
  min: 1
@@ -101,13 +101,17 @@ operation:
101
101
  ticket).
102
102
 
103
103
  rotation:
104
+ # AUTHOR NOTES: planned, and its -45.0 default REMOVED (clGOsvp2).
105
+ # lambdas' armed-defaults adjudication (D0DwvmjV, 2026-09-24, row 125)
106
+ # found the worker never reads it — drawtext is emitted unrotated — so
107
+ # the default was an armed promise nobody keeps. Marking alone does not
108
+ # disarm a default; it has to go. Restore both when the worker rotates.
104
109
  type: float
105
110
  min: -360.0
106
111
  max: 360.0
107
- default: -45.0
112
+ availability: planned
108
113
  description: |
109
- Rotation angle in degrees. Default -45° suits tiled mode
110
- (angled diagonal pattern). Clamped to range.
114
+ Rotation angle of the watermark text, in degrees. Not available yet.
111
115
 
112
116
  watermark_mode:
113
117
  type: enum
@@ -143,50 +147,56 @@ operation:
143
147
  - bottom_center
144
148
  - bottom_right
145
149
  default: bottom_right
146
- description: |
147
- 9-grid anchor position. For `watermark_mode: single`, the
148
- text label is placed at this anchor + margin_x/margin_y
149
- offset on each frame. For `watermark_mode: tiled`, anchor
150
- is ignored (tiles fill the frame).
151
-
152
- 🔴 **`center` IGNORES `margin_x` / `margin_y` rather than
153
- rejecting them. THE REJECTION AS WRITTEN CANNOT SURVIVE A
154
- NON-ZERO DEFAULT; IGNORING IS THE REPLACEMENT THAT WAS CHOSEN.**
155
- The sibling operations still reject a non-zero
156
- margin at `anchor: center` as `invalid_options` (422), and
157
- that rule is sound THERE because their margin default is
158
- `0px`: a client that materialises the default sends `0px`,
159
- which is not non-zero, so only a caller who actually asked
160
- for an offset is ever refused.
161
-
162
- ⛔ **Here the default is `2%`, and that makes the rejection
163
- rule unusable as written.** Schema-driven clients fill contract
164
- defaults BEFORE sending, so a request with `anchor: center`
165
- arrives carrying `margin_x: "2%"` whether the caller chose it
166
- or never mentioned margins at all. **After default
167
- materialisation an explicit value and a defaulted one are
168
- INDISTINGUISHABLE on the wire**, so a rejection cannot
169
- separate the mistake it exists to catch from the overwhelming
170
- majority of requests that simply accepted the default. It
171
- would 422 almost every centred watermark.
172
-
173
- ⚠️ **Rejection is not the only alternative, and this text does
174
- not claim it was forced.** A reject-if-it-differs-from-the-
175
- default rule would survive materialisation exactly as the zero
176
- rule does for the siblings. **Ignoring is the behaviour CHOSEN**
177
- under hub decision 465, because margins are meaningless when the
178
- label is centred and a no-op is kinder than a 422 on a request
179
- that renders correctly. The cost is stated: a caller who
180
- deliberately passes a margin with `anchor: center` gets silence
181
- rather than a correction.
182
-
183
- ⚠️ **DO NOT "align" `text_watermark` or `image_watermark` to
184
- this on the strength of the operation NAME.** Their rejection
185
- still works because their default is still `0px`. Changing one
186
- of THOSE defaults to non-zero is what would force the same move
187
- there — the trigger is a non-zero default, never the operation
188
- name. (`video_watermark` moved with this operation because its
189
- default moved too, under the same decision.)
150
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
151
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
152
+ # 9-grid anchor position. For `watermark_mode: single`, the
153
+ # text label is placed at this anchor + margin_x/margin_y
154
+ # offset on each frame. For `watermark_mode: tiled`, anchor
155
+ # is ignored (tiles fill the frame).
156
+ #
157
+ # 🔴 **`center` IGNORES `margin_x` / `margin_y` rather than
158
+ # rejecting them. THE REJECTION AS WRITTEN CANNOT SURVIVE A
159
+ # NON-ZERO DEFAULT; IGNORING IS THE REPLACEMENT THAT WAS CHOSEN.**
160
+ # The sibling operations still reject a non-zero
161
+ # margin at `anchor: center` as `invalid_options` (422), and
162
+ # that rule is sound THERE because their margin default is
163
+ # `0px`: a client that materialises the default sends `0px`,
164
+ # which is not non-zero, so only a caller who actually asked
165
+ # for an offset is ever refused.
166
+ #
167
+ # ⛔ **Here the default is `2%`, and that makes the rejection
168
+ # rule unusable as written.** Schema-driven clients fill contract
169
+ # defaults BEFORE sending, so a request with `anchor: center`
170
+ # arrives carrying `margin_x: "2%"` whether the caller chose it
171
+ # or never mentioned margins at all. **After default
172
+ # materialisation an explicit value and a defaulted one are
173
+ # INDISTINGUISHABLE on the wire**, so a rejection cannot
174
+ # separate the mistake it exists to catch from the overwhelming
175
+ # majority of requests that simply accepted the default. It
176
+ # would 422 almost every centred watermark.
177
+ #
178
+ # ⚠️ **Rejection is not the only alternative, and this text does
179
+ # not claim it was forced.** A reject-if-it-differs-from-the-
180
+ # default rule would survive materialisation exactly as the zero
181
+ # rule does for the siblings. **Ignoring is the behaviour CHOSEN**
182
+ # under hub decision 465, because margins are meaningless when the
183
+ # label is centred and a no-op is kinder than a 422 on a request
184
+ # that renders correctly. The cost is stated: a caller who
185
+ # deliberately passes a margin with `anchor: center` gets silence
186
+ # rather than a correction.
187
+ #
188
+ # ⚠️ **DO NOT "align" `text_watermark` or `image_watermark` to
189
+ # this on the strength of the operation NAME.** Their rejection
190
+ # still works because their default is still `0px`. Changing one
191
+ # of THOSE defaults to non-zero is what would force the same move
192
+ # there — the trigger is a non-zero default, never the operation
193
+ # name. (`video_watermark` moved with this operation because its
194
+ # default moved too, under the same decision.)
195
+ description: >-
196
+ Where the text is placed on each frame, on a 3x3 grid. For
197
+ `watermark_mode: single` the text sits at this anchor, offset by
198
+ `margin_x` / `margin_y`. For `watermark_mode: tiled` the anchor is
199
+ ignored. With `center`, the margins are ignored.
190
200
 
191
201
  margin_x:
192
202
  type: string
@@ -101,34 +101,39 @@ operation:
101
101
  - bottom_center
102
102
  - bottom_right
103
103
  default: bottom_right
104
- description: |
105
- 9-grid anchor position on each video frame. Same vocabulary
106
- as `image_watermark.image` and `text_watermark.image`.
107
-
108
- 🔴 **`center` IGNORES `margin_x` / `margin_y` rather than
109
- rejecting them. The rejection as written cannot survive a
110
- non-zero default; ignoring is the replacement that was CHOSEN.
111
- The trigger is the DEFAULT, not this operation.** Schema-driven
112
- clients materialise contract
113
- defaults BEFORE sending, so with a non-zero default a centred
114
- request arrives carrying `margin_x: "2%"` whether the caller
115
- chose it or never mentioned margins. **After materialisation
116
- an explicit value and a defaulted one are indistinguishable on
117
- the wire**, so the old `invalid_options` (422) rule would
118
- refuse nearly every centred watermark.
119
-
120
- ⚠️ Rejection is not the only alternative — a
121
- reject-if-it-differs-from-the-default rule would also survive
122
- materialisation. **Ignoring is the behaviour CHOSEN** under hub
123
- decision 465, because margins are meaningless when the label is
124
- centred. The cost is stated: a caller who deliberately passes a
125
- margin with `anchor: center` gets silence, not a correction.
126
-
127
- ⚠️ **The trigger is a NON-ZERO DEFAULT, never an operation
128
- name.** `image_watermark` and `text_watermark` keep their 422
129
- because their defaults are still `0px`, where a materialised
130
- default is not non-zero and only a deliberate offset is
131
- refused.
104
+ # AUTHOR NOTES (moved out of the user-facing description, ewOlw35Z,
105
+ # 2026-09-23 — frontend shows option descriptions to users). Preserved verbatim:
106
+ # 9-grid anchor position on each video frame. Same vocabulary
107
+ # as `image_watermark.image` and `text_watermark.image`.
108
+ #
109
+ # 🔴 **`center` IGNORES `margin_x` / `margin_y` rather than
110
+ # rejecting them. The rejection as written cannot survive a
111
+ # non-zero default; ignoring is the replacement that was CHOSEN.
112
+ # The trigger is the DEFAULT, not this operation.** Schema-driven
113
+ # clients materialise contract
114
+ # defaults BEFORE sending, so with a non-zero default a centred
115
+ # request arrives carrying `margin_x: "2%"` whether the caller
116
+ # chose it or never mentioned margins. **After materialisation
117
+ # an explicit value and a defaulted one are indistinguishable on
118
+ # the wire**, so the old `invalid_options` (422) rule would
119
+ # refuse nearly every centred watermark.
120
+ #
121
+ # ⚠️ Rejection is not the only alternative — a
122
+ # reject-if-it-differs-from-the-default rule would also survive
123
+ # materialisation. **Ignoring is the behaviour CHOSEN** under hub
124
+ # decision 465, because margins are meaningless when the label is
125
+ # centred. The cost is stated: a caller who deliberately passes a
126
+ # margin with `anchor: center` gets silence, not a correction.
127
+ #
128
+ # ⚠️ **The trigger is a NON-ZERO DEFAULT, never an operation
129
+ # name.** `image_watermark` and `text_watermark` keep their 422
130
+ # because their defaults are still `0px`, where a materialised
131
+ # default is not non-zero and only a deliberate offset is
132
+ # refused.
133
+ description: >-
134
+ Where the watermark is placed on each frame, on a 3x3 grid (the same
135
+ positions as image and text watermarks). With `center`, `margin_x` /
136
+ `margin_y` are ignored.
132
137
 
133
138
  margin_x:
134
139
  type: string
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@giveitsmaller/contracts",
3
- "version": "0.73.0",
4
- "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.208.0.",
5
- "gislContractsSpec": "v2.208.0",
3
+ "version": "0.76.0",
4
+ "description": "Generated contract types for GISL (Give It Smaller). Generated from compression_contracts spec v2.211.0.",
5
+ "gislContractsSpec": "v2.211.0",
6
6
  "license": "Apache-2.0",
7
7
  "homepage": "https://docs.giveitsmaller.com",
8
8
  "bugs": {