What are the implications of using the "go" version directive within a go module file (go.mod) : <p>Given the following go.mod file:</p>

<pre><code>module foo

go 1.12

require (
    github.com/bar/baz v1.0.0
    github.com/rat/cat v1.0.0
)
</code></pre>

<p>What does the <code>go 1.12</code> indicate? Does it prevent compiling the <code>foo</code> module against any other version of Go? Or is it simply an indicator of the <code>foo</code>'s recommended/required Go version? Is this a directive that we should update whenever a new version of go is released (every 6 months)?</p>
