//////////////////////
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
//////////////////////

[[ref-core-api, Core API]]
= Polygene™ Core API =

The Polygene™ Core API is main API that Polygene™ developers interact with. In fact, if you need to use classes/interfaces
in the Polygene™ Core SPI or Polygene™ Core Runtime, then please contact the Polygene™ Community and explain your use-case.

The Core API is strictly layered, with no _spaghetti_ cross packages. The package list is fairly long, and
we will look at each one in detail further down.

[width="80%",options="header"]
|=======
| Package       | Brief Description
| association   | Associations between Entities.
| cache         | Unit of Work caching options.
| common        | Various low level annotations, enums and meta types.
| composite     | Main package for Composites
| concern       | Concern fragments.
| configuration | Configuration system, integrated into entity system.
| constraint    | Constraint fragments.
| dataset       | Dataset and Query management.
| entity        | Entity composites.
| event         | System events.
| injection     | Dependency Injection handling.
| json          | JSON parsing and formatting.
| mixin         | Mixin fragments.
| object        | Java Object composition support.
| property      | Property API
| service       | Service composites
| sideeffect    | SideEffect fragments.
| structure     | Application structure types.
| type          | Low level types, mostly internal requirements.
| unitofwork    | Unit of work management.
| usecase       | Use-case type and builder.
| util          | Utility classes
| value         | Value composites.
|=======

