Duda acerca de declaracion de getter en Kotlin

tengo el siguiente código

val Context.database : SQLiteHelper get() = SQLiteHelper.getInstance(applicationContext) 

Estoy estudiando android, con el kotlin, nunca habia visto esta sintaxis para ser exactos:

val Context.database 

Por lo que entiendo esta declarando un getter que se llama database cuyo tipo a retornar es lo que devuelve getInstance de SQLiteHelper

pero no entiendo para que usa el operador “.” al declarar database es decir no entiendo el porque Context. y despues database,

Es como en javascript y a la clase Context en este caso le estamos agregando una propiedad nueva dinamicamente con el . o el funcionamiento es similar, podrian explicarme exactamente que ocurre?