'object', ]; /** @param array $properties */ public function properties(array $properties): self { return $this->updateSchemaProperty('properties', array_map( function (Schema $property) { return $property->toArray(); }, $properties )); } public function additionalProperties(Schema $schema): self { return $this->updateSchemaProperty('additionalProperties', $schema->toArray()); } public function disableAdditionalProperties(): self { return $this->updateSchemaProperty('additionalProperties', false); } /** * Keys of $properties are regular expressions without leading/trailing delimiters. * See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#patternproperties * * @param array $properties */ public function patternProperties(array $properties): self { $patternProperties = []; foreach ($properties as $key => $value) { $this->validatePattern($key); $patternProperties[$key] = $value->toArray(); } return $this->updateSchemaProperty('patternProperties', $patternProperties); } public function minProperties(int $value): self { return $this->updateSchemaProperty('minProperties', $value); } public function maxProperties(int $value): self { return $this->updateSchemaProperty('maxProperties', $value); } }