Hi Rob > > + ports: > > + $ref: "#/definitions/port-base" > > + unevaluatedProperties: false > > + patternProperties: > > + "^port(@[0-9a-f]+)?$": > > + $ref: "#/definitions/port-base" > > + unevaluatedProperties: false > > + patternProperties: > > + "^endpoint(@[0-9a-f]+)?": > > + $ref: "#/definitions/endpoint-base" > > + unevaluatedProperties: false > > + > > This won't work because any user that uses 'ports' here cannot add any > properties to port or endpoint nodes which I thought was the point of > this series. Now, we have port-base/endpoint-base on definitions. The user who want to have own properties can reuse it and redefine. The user who don't use own properties can use above "ports" which is implemented under "definitions". It is for very standard "ports". By having standard "ports" under "definitions", we can avoid duplicate "ports" IMO. Thank you for your help !! Best regards --- Kuninori Morimoto