001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008import edu.umd.cs.findbugs.annotations.NonNull;
009
010/**
011 * Represents a model element that has a JSON property name.
012 * <p>
013 * This interface provides access to the name used when serializing or
014 * deserializing the element in JSON or YAML format.
015 */
016@FunctionalInterface
017public interface IJsonNamed {
018
019  /**
020   * Get the name used for the associated property in JSON/YAML
021   * serialization-related operations.
022   *
023   * @return the JSON property name
024   */
025  @NonNull
026  String getJsonName();
027}