//////////////////////
 * Licensed 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.
//////////////////////

[[core-api, Core API]]
= Core API =

[devstatus]
--------------
source=core/api/dev-status.xml
--------------

The Zest™ Core API is the primary interface for client application code during the main execution phase, i.e. after the
application has been activated.

include::../../build/docs/buildinfo/artifact.txt[]

:leveloffset: {level3}

include::composition.txt[]

:leveloffset: {level3}

include::structure.txt[]

:leveloffset: {level3}

include::valuecomposite.txt[]

:leveloffset: {level3}

include::servicecomposite.txt[]

:leveloffset: {level3}

include::configuration.txt[]

:leveloffset: {level3}

include::entitycomposite.txt[]

:leveloffset: {level3}

include::unitofwork.txt[]

:leveloffset: {level3}

include::transientcomposite.txt[]

:leveloffset: {level3}

include::objects.txt[]

:leveloffset: {level3}

// include::dependency-injection.txt[]

:leveloffset: {level3}

// include::property.txt[]

:leveloffset: {level3}

// include::association.txt[]

:leveloffset: {level3}

include::mixin.txt[]

:leveloffset: {level3}

include::concern.txt[]

:leveloffset: {level3}

include::constraint.txt[]

:leveloffset: {level3}

include::sideeffect.txt[]

:leveloffset: {level3}

include::decoratormixin.txt[]

:leveloffset: {level3}

// include::indexing.txt[]

:leveloffset: {level3}

// include::query.txt[]

:leveloffset: {level3}

include::type-lookup.txt[]

:leveloffset: {level3}

include::metrics.txt[]
